From: Gert Wollny Date: Mon, 7 Nov 2016 11:40:51 +0000 (+0100) Subject: New upstream version 3.6.1~20161102 X-Git-Tag: archive/raspbian/3.6.9-4+rpi1^2~257^2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=e8ca983b14a7dd30759eed8e747f8993fcb53a60;p=dcmtk.git New upstream version 3.6.1~20161102 --- diff --git a/CMake/3rdparty.cmake b/CMake/3rdparty.cmake index 9fcca779..b40f88be 100755 --- a/CMake/3rdparty.cmake +++ b/CMake/3rdparty.cmake @@ -1,4 +1,4 @@ -IF(WIN32) +IF(WIN32 AND NOT MINGW) # For Windows, we don't used FIND_PACKAGE because DCMTK usually is used with its # own set of 3rd-party support libraries that can be downloaded from DCMTK's @@ -139,7 +139,7 @@ IF(WIN32) ENDIF(WITH_LIBICONVINC) ENDIF(DCMTK_WITH_ICONV) -ELSE(WIN32) +ELSE(WIN32 AND NOT MINGW) # Find TIFF IF(DCMTK_WITH_TIFF) diff --git a/CMake/DCMTKConfig.cmake.in b/CMake/DCMTKConfig.cmake.in index b77a8560..89188d27 100644 --- a/CMake/DCMTKConfig.cmake.in +++ b/CMake/DCMTKConfig.cmake.in @@ -33,15 +33,8 @@ SET(DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS @DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS@) SET(DCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS @DCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS@) SET(DCMTK_WIDE_CHAR_MAIN_FUNCTION @DCMTK_WIDE_CHAR_MAIN_FUNCTION@) -@DCMTK_INCLUDE_DIR_CONFIGS@ - SET_AND_CHECK(DCMTK_TARGETS "@PACKAGE_DCMTK_CMKDIR_CONFIG@/DCMTKTargets.cmake") -SET(DCMTK_INCLUDE_DIRS "") -FOREACH(module config ${DCMTK_MODULES}) - LIST(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_${module}_INCLUDE_DIR}) -ENDFOREACH(module) - @DCMTK_CONFIG_CODE@ # Compatibility: This variable is deprecated diff --git a/CMake/dcmtkPrepare.cmake b/CMake/dcmtkPrepare.cmake index e66ac8a0..40d28d2e 100644 --- a/CMake/dcmtkPrepare.cmake +++ b/CMake/dcmtkPrepare.cmake @@ -42,7 +42,7 @@ SET(DCMTK_MINOR_VERSION 6) SET(DCMTK_BUILD_VERSION 1) # The ABI is not guaranteed to be stable between different snapshots/releases, # so this particular version number is increased for each snapshot or release. -SET(DCMTK_ABI_VERSION 9) +SET(DCMTK_ABI_VERSION 10) # Package "release" settings (some are currently unused and, therefore, disabled) SET(DCMTK_PACKAGE_NAME "dcmtk") @@ -212,7 +212,7 @@ IF(COMMAND CMAKE_POLICY) ENDIF(COMMAND CMAKE_POLICY) # pass optional build date to compiler -ADD_DEFINITIONS(-DDCMTK_BUILD_DATE=\\\"2016-06-30\\\") +ADD_DEFINITIONS(-DDCMTK_BUILD_DATE=\\\"2016-11-02\\\") # make OFString(NULL) safe by default ADD_DEFINITIONS(-DUSE_NULL_SAFE_OFSTRING) diff --git a/CMakeLists.txt b/CMakeLists.txt index e79ed779..c1d92723 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ INCLUDE(CMake/dcmtkPrepare.cmake NO_POLICY_SCOPE) SET(DCMTK_MODULES ofstd oflog dcmdata dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr - dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmiod dcmfg dcmseg dcmtract + dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmiod dcmfg dcmseg dcmtract dcmpmap CACHE STRING "List of modules that should be built.") #----------------------------------------------------------------------------- diff --git a/Makefile b/Makefile index 83aaaf4d..19429f9d 100644 --- a/Makefile +++ b/Makefile @@ -9,39 +9,39 @@ include $(configdir)/Makefile.def .NOTPARALLEL: -all: config-all ofstd-all oflog-all dcmdata-all dcmiod-all dcmfg-all dcmseg-all dcmimgle-all dcmimage-all dcmjpeg-all dcmjpls-all dcmtls-all dcmnet-all dcmsr-all dcmsign-all dcmwlm-all dcmqrdb-all dcmpstat-all dcmrt-all dcmtract-all +all: config-all ofstd-all oflog-all dcmdata-all dcmiod-all dcmfg-all dcmseg-all dcmimgle-all dcmimage-all dcmjpeg-all dcmjpls-all dcmtls-all dcmnet-all dcmsr-all dcmsign-all dcmwlm-all dcmqrdb-all dcmpstat-all dcmrt-all dcmtract-all dcmpmap-all -libsrc-all: ofstd-libsrc-all oflog-libsrc-all dcmdata-libsrc-all dcmiod-libsrc-all dcmfg-libsrc-all dcmseg-libsrc-all dcmimgle-libsrc-all dcmimage-libsrc-all dcmjpeg-libsrc-all dcmjpls-libsrc-all dcmtls-libsrc-all dcmnet-libsrc-all dcmsr-libsrc-all dcmsign-libsrc-all dcmwlm-libsrc-all dcmqrdb-libsrc-all dcmpstat-libsrc-all dcmrt-libsrc-all dcmtract-libsrc-all +libsrc-all: ofstd-libsrc-all oflog-libsrc-all dcmdata-libsrc-all dcmiod-libsrc-all dcmfg-libsrc-all dcmseg-libsrc-all dcmimgle-libsrc-all dcmimage-libsrc-all dcmjpeg-libsrc-all dcmjpls-libsrc-all dcmtls-libsrc-all dcmnet-libsrc-all dcmsr-libsrc-all dcmsign-libsrc-all dcmwlm-libsrc-all dcmqrdb-libsrc-all dcmpstat-libsrc-all dcmrt-libsrc-all dcmtract-libsrc-all dcmpmap-libsrc-all -tests-all: config-tests-all ofstd-tests-all oflog-tests-all dcmdata-tests-all dcmiod-tests-all dcmfg-tests-all dcmseg-tests-all dcmimgle-tests-all dcmimage-tests-all dcmjpeg-tests-all dcmjpls-tests-all dcmtls-tests-all dcmnet-tests-all dcmsr-tests-all dcmsign-tests-all dcmwlm-tests-all dcmqrdb-tests-all dcmpstat-tests-all dcmrt-tests-all dcmtract-tests-all +tests-all: config-tests-all ofstd-tests-all oflog-tests-all dcmdata-tests-all dcmiod-tests-all dcmfg-tests-all dcmseg-tests-all dcmimgle-tests-all dcmimage-tests-all dcmjpeg-tests-all dcmjpls-tests-all dcmtls-tests-all dcmnet-tests-all dcmsr-tests-all dcmsign-tests-all dcmwlm-tests-all dcmqrdb-tests-all dcmpstat-tests-all dcmrt-tests-all dcmtract-tests-all dcmpmap-tests-all -install: config-install ofstd-install oflog-install dcmdata-install dcmiod-install dcmfg-install dcmseg-install dcmimgle-install dcmimage-install dcmjpeg-install dcmjpls-install dcmtls-install dcmnet-install dcmsr-install dcmsign-install dcmwlm-install dcmqrdb-install dcmpstat-install dcmrt-install dcmtract-install dcmtk-install-doc install-man +install: config-install ofstd-install oflog-install dcmdata-install dcmiod-install dcmfg-install dcmseg-install dcmimgle-install dcmimage-install dcmjpeg-install dcmjpls-install dcmtls-install dcmnet-install dcmsr-install dcmsign-install dcmwlm-install dcmqrdb-install dcmpstat-install dcmrt-install dcmtract-install dcmpmap-install dcmtk-install-doc install-man install-all: install install-lib install-html -install-bin: config-install-bin ofstd-install-bin oflog-install-bin dcmdata-install-bin dcmiod-install-bin dcmfg-install-bin dcmseg-install-bin dcmimgle-install-bin dcmimage-install-bin dcmjpeg-install-bin dcmjpls-install-bin dcmtls-install-bin dcmnet-install-bin dcmsr-install-bin dcmsign-install-bin dcmwlm-install-bin dcmqrdb-install-bin dcmpstat-install-bin dcmrt-install-bin dcmtract-install-bin +install-bin: config-install-bin ofstd-install-bin oflog-install-bin dcmdata-install-bin dcmiod-install-bin dcmfg-install-bin dcmseg-install-bin dcmimgle-install-bin dcmimage-install-bin dcmjpeg-install-bin dcmjpls-install-bin dcmtls-install-bin dcmnet-install-bin dcmsr-install-bin dcmsign-install-bin dcmwlm-install-bin dcmqrdb-install-bin dcmpstat-install-bin dcmrt-install-bin dcmtract-install-bin dcmpmap-install-bin -install-doc: config-install-doc ofstd-install-doc oflog-install-doc dcmdata-install-doc dcmiod-install-doc dcmfg-install-doc dcmseg-install-doc dcmimgle-install-doc dcmimage-install-doc dcmjpeg-install-doc dcmjpls-install-doc dcmtls-install-doc dcmnet-install-doc dcmsr-install-doc dcmsign-install-doc dcmwlm-install-doc dcmqrdb-install-doc dcmpstat-install-doc dcmrt-install-doc dcmtract-install-doc +install-doc: config-install-doc ofstd-install-doc oflog-install-doc dcmdata-install-doc dcmiod-install-doc dcmfg-install-doc dcmseg-install-doc dcmimgle-install-doc dcmimage-install-doc dcmjpeg-install-doc dcmjpls-install-doc dcmtls-install-doc dcmnet-install-doc dcmsr-install-doc dcmsign-install-doc dcmwlm-install-doc dcmqrdb-install-doc dcmpstat-install-doc dcmrt-install-doc dcmtract-install-doc dcmpmap-install-doc -install-data: config-install-data ofstd-install-data oflog-install-data dcmdata-install-data dcmiod-install-data dcmfg-install-data dcmseg-install-data dcmimgle-install-data dcmimage-install-data dcmjpeg-install-data dcmjpls-install-data dcmtls-install-data dcmnet-install-data dcmsr-install-data dcmsign-install-data dcmwlm-install-data dcmqrdb-install-data dcmpstat-install-data dcmrt-install-data dcmtract-install-data +install-data: config-install-data ofstd-install-data oflog-install-data dcmdata-install-data dcmiod-install-data dcmfg-install-data dcmseg-install-data dcmimgle-install-data dcmimage-install-data dcmjpeg-install-data dcmjpls-install-data dcmtls-install-data dcmnet-install-data dcmsr-install-data dcmsign-install-data dcmwlm-install-data dcmqrdb-install-data dcmpstat-install-data dcmrt-install-data dcmtract-install-data dcmpmap-install-data -install-etc: config-install-etc ofstd-install-etc oflog-install-etc dcmdata-install-etc dcmiod-install-etc dcmfg-install-etc dcmseg-install-etc dcmimgle-install-etc dcmimage-install-etc dcmjpeg-install-etc dcmjpls-install-etc dcmtls-install-etc dcmnet-install-etc dcmsr-install-etc dcmsign-install-etc dcmwlm-install-etc dcmqrdb-install-etc dcmpstat-install-etc dcmrt-install-etc dcmtract-install-etc +install-etc: config-install-etc ofstd-install-etc oflog-install-etc dcmdata-install-etc dcmiod-install-etc dcmfg-install-etc dcmseg-install-etc dcmimgle-install-etc dcmimage-install-etc dcmjpeg-install-etc dcmjpls-install-etc dcmtls-install-etc dcmnet-install-etc dcmsr-install-etc dcmsign-install-etc dcmwlm-install-etc dcmqrdb-install-etc dcmpstat-install-etc dcmrt-install-etc dcmtract-install-etc dcmpmap-install-etc -install-lib: config-install-lib ofstd-install-lib oflog-install-lib dcmdata-install-lib dcmiod-install-lib dcmfg-install-lib dcmseg-install-lib dcmimgle-install-lib dcmimage-install-lib dcmjpeg-install-lib dcmjpls-install-lib dcmtls-install-lib dcmnet-install-lib dcmsr-install-lib dcmsign-install-lib dcmwlm-install-lib dcmqrdb-install-lib dcmpstat-install-lib dcmrt-install-lib dcmtract-install-lib +install-lib: config-install-lib ofstd-install-lib oflog-install-lib dcmdata-install-lib dcmiod-install-lib dcmfg-install-lib dcmseg-install-lib dcmimgle-install-lib dcmimage-install-lib dcmjpeg-install-lib dcmjpls-install-lib dcmtls-install-lib dcmnet-install-lib dcmsr-install-lib dcmsign-install-lib dcmwlm-install-lib dcmqrdb-install-lib dcmpstat-install-lib dcmrt-install-lib dcmtract-install-lib dcmpmap-install-lib -install-include: config-install-include ofstd-install-include oflog-install-include dcmdata-install-include dcmiod-install-include dcmfg-install-include dcmseg-install-include dcmimgle-install-include dcmimage-install-include dcmjpeg-install-include dcmjpls-install-include dcmtls-install-include dcmnet-install-include dcmsr-install-include dcmsign-install-include dcmwlm-install-include dcmqrdb-install-include dcmpstat-install-include dcmrt-install-include dcmtract-install-include +install-include: config-install-include ofstd-install-include oflog-install-include dcmdata-install-include dcmiod-install-include dcmfg-install-include dcmseg-install-include dcmimgle-install-include dcmimage-install-include dcmjpeg-install-include dcmjpls-install-include dcmtls-install-include dcmnet-install-include dcmsr-install-include dcmsign-install-include dcmwlm-install-include dcmqrdb-install-include dcmpstat-install-include dcmrt-install-include dcmtract-install-include dcmpmap-install-include -install-support: config-install-support ofstd-install-support oflog-install-support dcmdata-install-support dcmiod-install-support dcmfg-install-support dcmseg-install-support dcmimgle-install-support dcmimage-install-support dcmjpeg-install-support dcmjpls-install-support dcmtls-install-support dcmnet-install-support dcmsr-install-support dcmsign-install-support dcmwlm-install-support dcmqrdb-install-support dcmpstat-install-support dcmrt-install-support dcmtract-install-support +install-support: config-install-support ofstd-install-support oflog-install-support dcmdata-install-support dcmiod-install-support dcmfg-install-support dcmseg-install-support dcmimgle-install-support dcmimage-install-support dcmjpeg-install-support dcmjpls-install-support dcmtls-install-support dcmnet-install-support dcmsr-install-support dcmsign-install-support dcmwlm-install-support dcmqrdb-install-support dcmpstat-install-support dcmrt-install-support dcmtract-install-support dcmpmap-install-support check: tests-all $(MAKE) -s check-nosilent -check-nosilent: config-check ofstd-check oflog-check dcmdata-check dcmiod-check dcmfg-check dcmseg-check dcmimgle-check dcmimage-check dcmjpeg-check dcmjpls-check dcmtls-check dcmnet-check dcmsr-check dcmsign-check dcmwlm-check dcmqrdb-check dcmpstat-check dcmrt-check dcmtract-check +check-nosilent: config-check ofstd-check oflog-check dcmdata-check dcmiod-check dcmfg-check dcmseg-check dcmimgle-check dcmimage-check dcmjpeg-check dcmjpls-check dcmtls-check dcmnet-check dcmsr-check dcmsign-check dcmwlm-check dcmqrdb-check dcmpstat-check dcmrt-check dcmtract-check dcmpmap-check check-exhaustive: tests-all $(MAKE) -s check-nosilent-exhaustive -check-nosilent-exhaustive: config-check-exhaustive ofstd-check-exhaustive oflog-check-exhaustive dcmdata-check-exhaustive dcmiod-check-exhaustive dcmfg-check-exhaustive dcmseg-check-exhaustive dcmimgle-check-exhaustive dcmimage-check-exhaustive dcmjpeg-check-exhaustive dcmjpls-check-exhaustive dcmtls-check-exhaustive dcmnet-check-exhaustive dcmsr-check-exhaustive dcmsign-check-exhaustive dcmwlm-check-exhaustive dcmqrdb-check-exhaustive dcmpstat-check-exhaustive dcmrt-check-exhaustive dcmtract-check-exhaustive +check-nosilent-exhaustive: config-check-exhaustive ofstd-check-exhaustive oflog-check-exhaustive dcmdata-check-exhaustive dcmiod-check-exhaustive dcmfg-check-exhaustive dcmseg-check-exhaustive dcmimgle-check-exhaustive dcmimage-check-exhaustive dcmjpeg-check-exhaustive dcmjpls-check-exhaustive dcmtls-check-exhaustive dcmnet-check-exhaustive dcmsr-check-exhaustive dcmsign-check-exhaustive dcmwlm-check-exhaustive dcmqrdb-check-exhaustive dcmpstat-check-exhaustive dcmrt-check-exhaustive dcmtract-check-exhaustive dcmpmap-check-exhaustive dcmtk-install-doc: $(configdir)/mkinstalldirs $(DESTDIR)$(docdir) @@ -91,7 +91,7 @@ help: @echo "" @echo "The following modules are available:" @echo "" - @echo "ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract" + @echo "ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract dcmpmap" config-all: (cd config && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" all) @@ -873,6 +873,45 @@ dcmtract-check: dcmtract-check-exhaustive: (cd dcmtract && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check-exhaustive) +dcmpmap-all: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" all) + +dcmpmap-libsrc-all: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" libsrc-all) + +dcmpmap-tests-all: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" tests-all) + +dcmpmap-install: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install) + +dcmpmap-install-bin: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-bin) + +dcmpmap-install-doc: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-doc) + +dcmpmap-install-data: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-data) + +dcmpmap-install-etc: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-etc) + +dcmpmap-install-lib: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-lib) + +dcmpmap-install-include: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-include) + +dcmpmap-install-support: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-support) + +dcmpmap-check: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check) + +dcmpmap-check-exhaustive: + (cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check-exhaustive) + dependencies: -(cd config && $(MAKE) dependencies) (cd ofstd && $(MAKE) dependencies) @@ -894,6 +933,7 @@ dependencies: (cd dcmpstat && $(MAKE) dependencies) (cd dcmrt && $(MAKE) dependencies) (cd dcmtract && $(MAKE) dependencies) + (cd dcmpmap && $(MAKE) dependencies) clean: (cd ofstd && $(MAKE) clean) @@ -915,6 +955,7 @@ clean: (cd dcmpstat && $(MAKE) clean) (cd dcmrt && $(MAKE) clean) (cd dcmtract && $(MAKE) clean) + (cd dcmpmap && $(MAKE) clean) (cd doxygen && $(MAKE) clean) -(cd config && $(MAKE) clean) rm -f $(TRASH) @@ -939,6 +980,7 @@ distclean: (cd dcmpstat && $(MAKE) distclean) (cd dcmrt && $(MAKE) distclean) (cd dcmtract && $(MAKE) distclean) + (cd dcmpmap && $(MAKE) distclean) (cd doxygen && $(MAKE) distclean) -(cd config && $(MAKE) distclean) rm -f $(TRASH) diff --git a/README b/README index d8317ef0..452a5de1 100644 --- a/README +++ b/README @@ -16,13 +16,15 @@ DCMTK contains the following sub-packages, each in its own sub-directory: dcmjpeg - a compression/decompression library and utility apps dcmjpls - a compression/decompression library and utility apps dcmnet - a networking library and utility apps + dcmpmap - a library for working with parametric map objects dcmpstat - a presentation state library and utility apps dcmqrdb - an image database server dcmrt - a radiation therapy library and utility apps dcmseg - a library for working with segmentation objects dcmsign - a digital signature library and utility apps - dcmsr - a structured report library and utility apps + dcmsr - a structured reporting library and utility apps dcmtls - security extensions for the network library + dcmtract - a library for working with tractography results dcmwlm - a modality worklist database server oflog - a logging library based on log4cplus ofstd - a library of general purpose classes diff --git a/VERSION b/VERSION index b0cf8e9c..fccf8330 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.6.1_20160630 +3.6.1_20161102 diff --git a/config/Makefile.def.in b/config/Makefile.def.in index cbec746a..f35932ca 100644 --- a/config/Makefile.def.in +++ b/config/Makefile.def.in @@ -52,10 +52,10 @@ DEBUG = @DEBUG@ # # We want the old behavior of OFString(NULL) for now, no crashes. -GLOBALDEFS = @DEFS@ -DDCMTK_BUILD_DATE=\"2016-06-30\" -DUSE_NULL_SAFE_OFSTRING -DDCMTK_BUILD_IN_PROGRESS +GLOBALDEFS = @DEFS@ -DDCMTK_BUILD_DATE=\"2016-11-02\" -DUSE_NULL_SAFE_OFSTRING -DDCMTK_BUILD_IN_PROGRESS # -# ARCH defines special machine archtecture compiler settings +# ARCH defines special machine architecture compiler settings # (e.g. -arch i386 on NeXT) # diff --git a/config/modules b/config/modules index 698a4b11..16768209 100644 --- a/config/modules +++ b/config/modules @@ -1 +1 @@ -ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract +ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract dcmpmap diff --git a/dcmdata/apps/xml2dcm.cc b/dcmdata/apps/xml2dcm.cc index 4b161597..e6cd3210 100644 --- a/dcmdata/apps/xml2dcm.cc +++ b/dcmdata/apps/xml2dcm.cc @@ -787,9 +787,15 @@ int main(int argc, char *argv[]) cmd.beginOptionBlock(); if (cmd.findOption("--dont-overwrite-uids")) + { + app.checkDependence("--dont-overwrite-uids", "--generate-new-uids", opt_generateUIDs); opt_overwriteUIDs = OFFalse; + } if (cmd.findOption("--overwrite-uids")) + { + app.checkDependence("--overwrite-uids", "--generate-new-uids", opt_generateUIDs); opt_overwriteUIDs = OFTrue; + } cmd.endOptionBlock(); /* output options */ diff --git a/dcmdata/data/dicom.dic b/dcmdata/data/dicom.dic index e0f8c86c..362bf6c3 100644 --- a/dcmdata/data/dicom.dic +++ b/dcmdata/data/dicom.dic @@ -21,8 +21,8 @@ # DICONDE (Digital Imaging and Communication in Nondestructive Evaluation) and # DICOS (Digital Imaging and Communications in Security) standard. # -# Generated automatically from DICOM PS 3.6-2016c and PS 3.7-2016c -# File created on 2016-06-13 09:52:04 by J. Riesmeier on thinkpad. +# Generated automatically from DICOM PS 3.6-2016d and PS 3.7-2016d +# File created on 2016-10-04 11:49:44 by J. Riesmeier on thinkpad. # # In addition, the data dictionary entries from the following final text # supplements and correction items (CP) have been incorporated: @@ -168,6 +168,9 @@ (0008,0123) SQ ContextGroupIdentificationSequence 1 DICOM (0008,0124) SQ MappingResourceIdentificationSequence 1 DICOM (0008,0201) SH TimezoneOffsetFromUTC 1 DICOM +(0008,0220) SQ ResponsibleGroupCodeSequence 1 DICOM +(0008,0221) CS EquipmentModality 1 DICOM +(0008,0222) LO ManufacturerRelatedModelGroup 1 DICOM (0008,0300) SQ PrivateDataElementCharacteristicsSequence 1 DICOM (0008,0301) US PrivateGroupReference 1 DICOM (0008,0302) LO PrivateCreatorReference 1 DICOM @@ -176,6 +179,15 @@ (0008,0305) SQ DeidentificationActionSequence 1 DICOM (0008,0306) US IdentifyingPrivateElements 1-n DICOM (0008,0307) CS DeidentificationAction 1 DICOM +(0008,0308) US PrivateDataElement 1 DICOM +(0008,0309) UL PrivateDataElementValueMultiplicity 1-3 DICOM +(0008,030A) CS PrivateDataElementValueRepresentation 1 DICOM +(0008,030B) UL PrivateDataElementNumberOfItems 1-2 DICOM +(0008,030C) UC PrivateDataElementName 1 DICOM +(0008,030D) UC PrivateDataElementKeyword 1 DICOM +(0008,030E) UT PrivateDataElementDescription 1 DICOM +(0008,030F) UT PrivateDataElementEncoding 1 DICOM +(0008,0310) SQ PrivateDataElementDefinitionSequence 1 DICOM (0008,1010) SH StationName 1 DICOM (0008,1030) LO StudyDescription 1 DICOM (0008,1032) SQ ProcedureCodeSequence 1 DICOM @@ -298,6 +310,9 @@ (0010,1010) AS PatientAge 1 DICOM (0010,1020) DS PatientSize 1 DICOM (0010,1021) SQ PatientSizeCodeSequence 1 DICOM +(0010,1022) DS PatientBodyMassIndex 1 DICOM +(0010,1023) DS MeasuredAPDimension 1 DICOM +(0010,1024) DS MeasuredLateralDimension 1 DICOM (0010,1030) DS PatientWeight 1 DICOM (0010,1040) LO PatientAddress 1 DICOM (0010,1060) PN PatientMotherBirthName 1 DICOM @@ -352,6 +367,8 @@ (0012,0083) SQ ConsentForClinicalTrialUseSequence 1 DICOM (0012,0084) CS DistributionType 1 DICOM (0012,0085) CS ConsentForDistributionFlag 1 DICOM +(0012,0086) DA EthicsCommitteeApprovalEffectivenessStartDate 1 DICOM +(0012,0087) DA EthicsCommitteeApprovalEffectivenessEndDate 1 DICOM (0014,0025) ST ComponentManufacturingProcedure 1 DICOM/DICONDE (0014,0028) ST ComponentManufacturer 1 DICOM/DICONDE (0014,0030) DS MaterialThickness 1-n DICOM/DICONDE @@ -596,6 +613,8 @@ (0018,1006) LO GridID 1 DICOM (0018,1007) LO CassetteID 1 DICOM (0018,1008) LO GantryID 1 DICOM +(0018,1009) UT UniqueDeviceIdentifier 1 DICOM +(0018,100A) SQ UDISequence 1 DICOM (0018,1010) LO SecondaryCaptureDeviceID 1 DICOM (0018,1012) DA DateOfSecondaryCapture 1 DICOM (0018,1014) TM TimeOfSecondaryCapture 1 DICOM @@ -1066,7 +1085,7 @@ (0018,9320) SH ImageFilter 1 DICOM (0018,9321) SQ CTExposureSequence 1 DICOM (0018,9322) FD ReconstructionPixelSpacing 2 DICOM -(0018,9323) CS ExposureModulationType 1 DICOM +(0018,9323) CS ExposureModulationType 1-n DICOM (0018,9324) FD EstimatedDoseSaving 1 DICOM (0018,9325) SQ CTXRayDetailsSequence 1 DICOM (0018,9326) SQ CTPositionSequence 1 DICOM @@ -1252,6 +1271,65 @@ (0018,980E) SQ TransducerBeamSteeringCodeSequence 1 DICOM (0018,980F) SQ TransducerApplicationCodeSequence 1 DICOM (0018,9810) xs ZeroVelocityPixelValue 1 DICOM +(0018,9900) LO ReferenceLocationLabel 1 DICOM +(0018,9901) UT ReferenceLocationDescription 1 DICOM +(0018,9902) SQ ReferenceBasisCodeSequence 1 DICOM +(0018,9903) SQ ReferenceGeometryCodeSequence 1 DICOM +(0018,9904) DS OffsetDistance 1 DICOM +(0018,9905) CS OffsetDirection 1 DICOM +(0018,9906) SQ PotentialScheduledProtocolCodeSequence 1 DICOM +(0018,9907) SQ PotentialRequestedProcedureCodeSequence 1 DICOM +(0018,9908) UC PotentialReasonsForProcedure 1-n DICOM +(0018,9909) SQ PotentialReasonsForProcedureCodeSequence 1 DICOM +(0018,990A) UC PotentialDiagnosticTasks 1-n DICOM +(0018,990B) SQ ContraindicationsCodeSequence 1 DICOM +(0018,990C) SQ ReferencedDefinedProtocolSequence 1 DICOM +(0018,990D) SQ ReferencedPerformedProtocolSequence 1 DICOM +(0018,990E) SQ PredecessorProtocolSequence 1 DICOM +(0018,990F) UT ProtocolPlanningInformation 1 DICOM +(0018,9910) UT ProtocolDesignRationale 1 DICOM +(0018,9911) SQ PatientSpecificationSequence 1 DICOM +(0018,9912) SQ ModelSpecificationSequence 1 DICOM +(0018,9913) SQ ParametersSpecificationSequence 1 DICOM +(0018,9914) SQ InstructionSequence 1 DICOM +(0018,9915) US InstructionIndex 1 DICOM +(0018,9916) LO InstructionText 1 DICOM +(0018,9917) UT InstructionDescription 1 DICOM +(0018,9918) CS InstructionPerformedFlag 1 DICOM +(0018,9919) DT InstructionPerformedDateTime 1 DICOM +(0018,991A) UT InstructionPerformanceComment 1 DICOM +(0018,991B) SQ PatientPositioningInstructionSequence 1 DICOM +(0018,991C) SQ PositioningMethodCodeSequence 1 DICOM +(0018,991D) SQ PositioningLandmarkSequence 1 DICOM +(0018,991E) UI TargetFrameOfReferenceUID 1 DICOM +(0018,991F) SQ AcquisitionProtocolElementSpecificationSequence 1 DICOM +(0018,9920) SQ AcquisitionProtocolElementSequence 1 DICOM +(0018,9921) US ProtocolElementNumber 1 DICOM +(0018,9922) LO ProtocolElementName 1 DICOM +(0018,9923) UT ProtocolElementCharacteristicsSummary 1 DICOM +(0018,9924) UT ProtocolElementPurpose 1 DICOM +(0018,9930) CS AcquisitionMotion 1 DICOM +(0018,9931) SQ AcquisitionStartLocationSequence 1 DICOM +(0018,9932) SQ AcquisitionEndLocationSequence 1 DICOM +(0018,9933) SQ ReconstructionProtocolElementSpecificationSequence 1 DICOM +(0018,9934) SQ ReconstructionProtocolElementSequence 1 DICOM +(0018,9935) SQ StorageProtocolElementSpecificationSequence 1 DICOM +(0018,9936) SQ StorageProtocolElementSequence 1 DICOM +(0018,9937) LO RequestedSeriesDescription 1 DICOM +(0018,9938) US SourceAcquisitionProtocolElementNumber 1-n DICOM +(0018,9939) US SourceAcquisitionBeamNumber 1-n DICOM +(0018,993A) US SourceReconstructionProtocolElementNumber 1-n DICOM +(0018,993B) SQ ReconstructionStartLocationSequence 1 DICOM +(0018,993C) SQ ReconstructionEndLocationSequence 1 DICOM +(0018,993D) SQ ReconstructionAlgorithmSequence 1 DICOM +(0018,993E) SQ ReconstructionTargetCenterLocationSequence 1 DICOM +(0018,9941) UT ImageFilterDescription 1 DICOM +(0018,9942) FD CTDIvolNotificationTrigger 1 DICOM +(0018,9943) FD DLPNotificationTrigger 1 DICOM +(0018,9944) CS AutoKVPSelectionType 1 DICOM +(0018,9945) FD AutoKVPUpperBound 1 DICOM +(0018,9946) FD AutoKVPLowerBound 1 DICOM +(0018,9947) CS ProtocolDefinedPatientPosition 1 DICOM (0018,A001) SQ ContributingEquipmentSequence 1 DICOM (0018,A002) DT ContributionDateTime 1 DICOM (0018,A003) ST ContributionDescription 1 DICOM @@ -1274,6 +1352,7 @@ (0020,0200) UI SynchronizationFrameOfReferenceUID 1 DICOM (0020,0242) UI SOPInstanceUIDOfConcatenationSource 1 DICOM (0020,1002) IS ImagesInAcquisition 1 DICOM +(0020,103F) LO TargetPositionReferenceIndicator 1 DICOM (0020,1040) LO PositionReferenceIndicator 1 DICOM (0020,1041) DS SliceLocation 1 DICOM (0020,1200) IS NumberOfPatientRelatedStudies 1 DICOM @@ -2573,6 +2652,7 @@ (0070,031A) UI FiducialUID 1 DICOM (0070,031C) SQ FiducialSetSequence 1 DICOM (0070,031E) SQ FiducialSequence 1 DICOM +(0070,031F) SQ FiducialsPropertyCategoryCodeSequence 1 DICOM (0070,0401) US GraphicLayerRecommendedDisplayCIELabValue 3 DICOM (0070,0402) SQ BlendingSequence 1 DICOM (0070,0403) FL RelativeOpacity 1 DICOM @@ -2890,6 +2970,7 @@ (0082,0035) SQ RecommendedDefaultValueSequence 1 DICOM (0082,0036) CS ConstraintViolationSignificance 1 DICOM (0082,0037) UT ConstraintViolationCondition 1 DICOM +(0082,0038) CS ModifiableConstraintFlag 1 DICOM (0088,0130) SH StorageMediaFileSetID 1 DICOM (0088,0140) UI StorageMediaFileSetUID 1 DICOM (0088,0200) SQ IconImageSequence 1 DICOM @@ -3096,7 +3177,6 @@ (3006,00B6) SQ ROIElementalCompositionSequence 1 DICOM (3006,00B7) US ROIElementalCompositionAtomicNumber 1 DICOM (3006,00B8) FL ROIElementalCompositionAtomicMassFraction 1 DICOM -(3006,00B9) SQ AdditionalRTROIIdentificationCodeSequence 1 DICOM (3006,00C6) DS FrameOfReferenceTransformationMatrix 16 DICOM (3006,00C8) LO FrameOfReferenceTransformationComment 1 DICOM (3008,0010) SQ MeasuredDoseReferenceSequence 1 DICOM @@ -4111,6 +4191,7 @@ (2130,0080) SQ RETIRED_PresentationLUTContentSequence 1 DICOM/retired (2130,00A0) SQ RETIRED_ProposedStudySequence 1 DICOM/retired (2130,00C0) SQ RETIRED_OriginalImageSequence 1 DICOM/retired +(3006,00B9) SQ RETIRED_AdditionalRTROIIdentificationCodeSequence 1 DICOM/retired (3006,00C0) SQ RETIRED_FrameOfReferenceRelationshipSequence 1 DICOM/retired (3006,00C2) UI RETIRED_RelatedFrameOfReferenceUID 1 DICOM/retired (3006,00C4) CS RETIRED_FrameOfReferenceTransformationType 1 DICOM/retired diff --git a/dcmdata/include/dcmtk/dcmdata/dcdeftag.h b/dcmdata/include/dcmtk/dcmdata/dcdeftag.h index 87606fc4..a1c78079 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcdeftag.h +++ b/dcmdata/include/dcmtk/dcmdata/dcdeftag.h @@ -4,7 +4,7 @@ ** ** User: joergr ** Host: thinkpad -** Date: 2016-06-13 09:57:12 +** Date: 2016-10-04 12:15:57 ** Prog: /home/joergr/Source/dcmtk-full/public/dcmdata/libsrc/mkdeftag ** ** From: ../data/dicom.dic @@ -17,12 +17,12 @@ #include "dcmtk/dcmdata/dctagkey.h" -#define DCM_DICT_DEFTAG_BUILD_DATE "2016-06-13 09:57:12" +#define DCM_DICT_DEFTAG_BUILD_DATE "2016-10-04 12:15:57" /* ** Fixed Tags in ascending (gggg,eeee) order. -** Number of entries: 4085 +** Number of entries: 4166 ** Tags with a repeating component (repeating tags) are listed later. */ #define DCM_CommandGroupLength DcmTagKey(0x0000, 0x0000) @@ -181,6 +181,9 @@ #define DCM_ContextGroupIdentificationSequence DcmTagKey(0x0008, 0x0123) #define DCM_MappingResourceIdentificationSequence DcmTagKey(0x0008, 0x0124) #define DCM_TimezoneOffsetFromUTC DcmTagKey(0x0008, 0x0201) +#define DCM_ResponsibleGroupCodeSequence DcmTagKey(0x0008, 0x0220) +#define DCM_EquipmentModality DcmTagKey(0x0008, 0x0221) +#define DCM_ManufacturerRelatedModelGroup DcmTagKey(0x0008, 0x0222) #define DCM_PrivateDataElementCharacteristicsSequence DcmTagKey(0x0008, 0x0300) #define DCM_PrivateGroupReference DcmTagKey(0x0008, 0x0301) #define DCM_PrivateCreatorReference DcmTagKey(0x0008, 0x0302) @@ -189,6 +192,15 @@ #define DCM_DeidentificationActionSequence DcmTagKey(0x0008, 0x0305) #define DCM_IdentifyingPrivateElements DcmTagKey(0x0008, 0x0306) #define DCM_DeidentificationAction DcmTagKey(0x0008, 0x0307) +#define DCM_PrivateDataElement DcmTagKey(0x0008, 0x0308) +#define DCM_PrivateDataElementValueMultiplicity DcmTagKey(0x0008, 0x0309) +#define DCM_PrivateDataElementValueRepresentation DcmTagKey(0x0008, 0x030a) +#define DCM_PrivateDataElementNumberOfItems DcmTagKey(0x0008, 0x030b) +#define DCM_PrivateDataElementName DcmTagKey(0x0008, 0x030c) +#define DCM_PrivateDataElementKeyword DcmTagKey(0x0008, 0x030d) +#define DCM_PrivateDataElementDescription DcmTagKey(0x0008, 0x030e) +#define DCM_PrivateDataElementEncoding DcmTagKey(0x0008, 0x030f) +#define DCM_PrivateDataElementDefinitionSequence DcmTagKey(0x0008, 0x0310) #define DCM_RETIRED_NetworkID DcmTagKey(0x0008, 0x1000) #define DCM_StationName DcmTagKey(0x0008, 0x1010) #define DCM_StudyDescription DcmTagKey(0x0008, 0x1030) @@ -333,6 +345,9 @@ #define DCM_PatientAge DcmTagKey(0x0010, 0x1010) #define DCM_PatientSize DcmTagKey(0x0010, 0x1020) #define DCM_PatientSizeCodeSequence DcmTagKey(0x0010, 0x1021) +#define DCM_PatientBodyMassIndex DcmTagKey(0x0010, 0x1022) +#define DCM_MeasuredAPDimension DcmTagKey(0x0010, 0x1023) +#define DCM_MeasuredLateralDimension DcmTagKey(0x0010, 0x1024) #define DCM_PatientWeight DcmTagKey(0x0010, 0x1030) #define DCM_PatientAddress DcmTagKey(0x0010, 0x1040) #define DCM_RETIRED_InsurancePlanIdentification DcmTagKey(0x0010, 0x1050) @@ -388,6 +403,8 @@ #define DCM_ConsentForClinicalTrialUseSequence DcmTagKey(0x0012, 0x0083) #define DCM_DistributionType DcmTagKey(0x0012, 0x0084) #define DCM_ConsentForDistributionFlag DcmTagKey(0x0012, 0x0085) +#define DCM_EthicsCommitteeApprovalEffectivenessStartDate DcmTagKey(0x0012, 0x0086) +#define DCM_EthicsCommitteeApprovalEffectivenessEndDate DcmTagKey(0x0012, 0x0087) #define DCM_RETIRED_CADFileFormat DcmTagKey(0x0014, 0x0023) #define DCM_RETIRED_ComponentReferenceSystem DcmTagKey(0x0014, 0x0024) #define DCM_ComponentManufacturingProcedure DcmTagKey(0x0014, 0x0025) @@ -640,6 +657,8 @@ #define DCM_GridID DcmTagKey(0x0018, 0x1006) #define DCM_CassetteID DcmTagKey(0x0018, 0x1007) #define DCM_GantryID DcmTagKey(0x0018, 0x1008) +#define DCM_UniqueDeviceIdentifier DcmTagKey(0x0018, 0x1009) +#define DCM_UDISequence DcmTagKey(0x0018, 0x100a) #define DCM_SecondaryCaptureDeviceID DcmTagKey(0x0018, 0x1010) #define DCM_RETIRED_HardcopyCreationDeviceID DcmTagKey(0x0018, 0x1011) #define DCM_DateOfSecondaryCapture DcmTagKey(0x0018, 0x1012) @@ -1319,6 +1338,65 @@ #define DCM_TransducerBeamSteeringCodeSequence DcmTagKey(0x0018, 0x980e) #define DCM_TransducerApplicationCodeSequence DcmTagKey(0x0018, 0x980f) #define DCM_ZeroVelocityPixelValue DcmTagKey(0x0018, 0x9810) +#define DCM_ReferenceLocationLabel DcmTagKey(0x0018, 0x9900) +#define DCM_ReferenceLocationDescription DcmTagKey(0x0018, 0x9901) +#define DCM_ReferenceBasisCodeSequence DcmTagKey(0x0018, 0x9902) +#define DCM_ReferenceGeometryCodeSequence DcmTagKey(0x0018, 0x9903) +#define DCM_OffsetDistance DcmTagKey(0x0018, 0x9904) +#define DCM_OffsetDirection DcmTagKey(0x0018, 0x9905) +#define DCM_PotentialScheduledProtocolCodeSequence DcmTagKey(0x0018, 0x9906) +#define DCM_PotentialRequestedProcedureCodeSequence DcmTagKey(0x0018, 0x9907) +#define DCM_PotentialReasonsForProcedure DcmTagKey(0x0018, 0x9908) +#define DCM_PotentialReasonsForProcedureCodeSequence DcmTagKey(0x0018, 0x9909) +#define DCM_PotentialDiagnosticTasks DcmTagKey(0x0018, 0x990a) +#define DCM_ContraindicationsCodeSequence DcmTagKey(0x0018, 0x990b) +#define DCM_ReferencedDefinedProtocolSequence DcmTagKey(0x0018, 0x990c) +#define DCM_ReferencedPerformedProtocolSequence DcmTagKey(0x0018, 0x990d) +#define DCM_PredecessorProtocolSequence DcmTagKey(0x0018, 0x990e) +#define DCM_ProtocolPlanningInformation DcmTagKey(0x0018, 0x990f) +#define DCM_ProtocolDesignRationale DcmTagKey(0x0018, 0x9910) +#define DCM_PatientSpecificationSequence DcmTagKey(0x0018, 0x9911) +#define DCM_ModelSpecificationSequence DcmTagKey(0x0018, 0x9912) +#define DCM_ParametersSpecificationSequence DcmTagKey(0x0018, 0x9913) +#define DCM_InstructionSequence DcmTagKey(0x0018, 0x9914) +#define DCM_InstructionIndex DcmTagKey(0x0018, 0x9915) +#define DCM_InstructionText DcmTagKey(0x0018, 0x9916) +#define DCM_InstructionDescription DcmTagKey(0x0018, 0x9917) +#define DCM_InstructionPerformedFlag DcmTagKey(0x0018, 0x9918) +#define DCM_InstructionPerformedDateTime DcmTagKey(0x0018, 0x9919) +#define DCM_InstructionPerformanceComment DcmTagKey(0x0018, 0x991a) +#define DCM_PatientPositioningInstructionSequence DcmTagKey(0x0018, 0x991b) +#define DCM_PositioningMethodCodeSequence DcmTagKey(0x0018, 0x991c) +#define DCM_PositioningLandmarkSequence DcmTagKey(0x0018, 0x991d) +#define DCM_TargetFrameOfReferenceUID DcmTagKey(0x0018, 0x991e) +#define DCM_AcquisitionProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x991f) +#define DCM_AcquisitionProtocolElementSequence DcmTagKey(0x0018, 0x9920) +#define DCM_ProtocolElementNumber DcmTagKey(0x0018, 0x9921) +#define DCM_ProtocolElementName DcmTagKey(0x0018, 0x9922) +#define DCM_ProtocolElementCharacteristicsSummary DcmTagKey(0x0018, 0x9923) +#define DCM_ProtocolElementPurpose DcmTagKey(0x0018, 0x9924) +#define DCM_AcquisitionMotion DcmTagKey(0x0018, 0x9930) +#define DCM_AcquisitionStartLocationSequence DcmTagKey(0x0018, 0x9931) +#define DCM_AcquisitionEndLocationSequence DcmTagKey(0x0018, 0x9932) +#define DCM_ReconstructionProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x9933) +#define DCM_ReconstructionProtocolElementSequence DcmTagKey(0x0018, 0x9934) +#define DCM_StorageProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x9935) +#define DCM_StorageProtocolElementSequence DcmTagKey(0x0018, 0x9936) +#define DCM_RequestedSeriesDescription DcmTagKey(0x0018, 0x9937) +#define DCM_SourceAcquisitionProtocolElementNumber DcmTagKey(0x0018, 0x9938) +#define DCM_SourceAcquisitionBeamNumber DcmTagKey(0x0018, 0x9939) +#define DCM_SourceReconstructionProtocolElementNumber DcmTagKey(0x0018, 0x993a) +#define DCM_ReconstructionStartLocationSequence DcmTagKey(0x0018, 0x993b) +#define DCM_ReconstructionEndLocationSequence DcmTagKey(0x0018, 0x993c) +#define DCM_ReconstructionAlgorithmSequence DcmTagKey(0x0018, 0x993d) +#define DCM_ReconstructionTargetCenterLocationSequence DcmTagKey(0x0018, 0x993e) +#define DCM_ImageFilterDescription DcmTagKey(0x0018, 0x9941) +#define DCM_CTDIvolNotificationTrigger DcmTagKey(0x0018, 0x9942) +#define DCM_DLPNotificationTrigger DcmTagKey(0x0018, 0x9943) +#define DCM_AutoKVPSelectionType DcmTagKey(0x0018, 0x9944) +#define DCM_AutoKVPUpperBound DcmTagKey(0x0018, 0x9945) +#define DCM_AutoKVPLowerBound DcmTagKey(0x0018, 0x9946) +#define DCM_ProtocolDefinedPatientPosition DcmTagKey(0x0018, 0x9947) #define DCM_ContributingEquipmentSequence DcmTagKey(0x0018, 0xa001) #define DCM_ContributionDateTime DcmTagKey(0x0018, 0xa002) #define DCM_ContributionDescription DcmTagKey(0x0018, 0xa003) @@ -1361,6 +1439,7 @@ #define DCM_RETIRED_AcquisitionsInStudy DcmTagKey(0x0020, 0x1004) #define DCM_RETIRED_ImagesInStudy DcmTagKey(0x0020, 0x1005) #define DCM_RETIRED_Reference DcmTagKey(0x0020, 0x1020) +#define DCM_TargetPositionReferenceIndicator DcmTagKey(0x0020, 0x103f) #define DCM_PositionReferenceIndicator DcmTagKey(0x0020, 0x1040) #define DCM_SliceLocation DcmTagKey(0x0020, 0x1041) #define DCM_RETIRED_OtherStudyNumbers DcmTagKey(0x0020, 0x1070) @@ -2866,6 +2945,7 @@ #define DCM_FiducialUID DcmTagKey(0x0070, 0x031a) #define DCM_FiducialSetSequence DcmTagKey(0x0070, 0x031c) #define DCM_FiducialSequence DcmTagKey(0x0070, 0x031e) +#define DCM_FiducialsPropertyCategoryCodeSequence DcmTagKey(0x0070, 0x031f) #define DCM_GraphicLayerRecommendedDisplayCIELabValue DcmTagKey(0x0070, 0x0401) #define DCM_BlendingSequence DcmTagKey(0x0070, 0x0402) #define DCM_RelativeOpacity DcmTagKey(0x0070, 0x0403) @@ -3188,6 +3268,7 @@ #define DCM_RecommendedDefaultValueSequence DcmTagKey(0x0082, 0x0035) #define DCM_ConstraintViolationSignificance DcmTagKey(0x0082, 0x0036) #define DCM_ConstraintViolationCondition DcmTagKey(0x0082, 0x0037) +#define DCM_ModifiableConstraintFlag DcmTagKey(0x0082, 0x0038) #define DCM_StorageMediaFileSetID DcmTagKey(0x0088, 0x0130) #define DCM_StorageMediaFileSetUID DcmTagKey(0x0088, 0x0140) #define DCM_IconImageSequence DcmTagKey(0x0088, 0x0200) @@ -3441,7 +3522,7 @@ #define DCM_ROIElementalCompositionSequence DcmTagKey(0x3006, 0x00b6) #define DCM_ROIElementalCompositionAtomicNumber DcmTagKey(0x3006, 0x00b7) #define DCM_ROIElementalCompositionAtomicMassFraction DcmTagKey(0x3006, 0x00b8) -#define DCM_AdditionalRTROIIdentificationCodeSequence DcmTagKey(0x3006, 0x00b9) +#define DCM_RETIRED_AdditionalRTROIIdentificationCodeSequence DcmTagKey(0x3006, 0x00b9) #define DCM_RETIRED_FrameOfReferenceRelationshipSequence DcmTagKey(0x3006, 0x00c0) #define DCM_RETIRED_RelatedFrameOfReferenceUID DcmTagKey(0x3006, 0x00c2) #define DCM_RETIRED_FrameOfReferenceTransformationType DcmTagKey(0x3006, 0x00c4) diff --git a/dcmdata/include/dcmtk/dcmdata/dcerror.h b/dcmdata/include/dcmtk/dcmdata/dcerror.h index 5aa0262f..328c15fc 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcerror.h +++ b/dcmdata/include/dcmtk/dcmdata/dcerror.h @@ -70,7 +70,7 @@ const unsigned short OFM_dcmiod = 29; const unsigned short OFM_dcmseg = 30; const unsigned short OFM_dcmfg = 31; const unsigned short OFM_dcmtract = 32; - +const unsigned short OFM_dcmpmap = 33; // condition constants diff --git a/dcmdata/include/dcmtk/dcmdata/dcuid.h b/dcmdata/include/dcmtk/dcmdata/dcuid.h index c8b8e00d..83590da1 100644 --- a/dcmdata/include/dcmtk/dcmdata/dcuid.h +++ b/dcmdata/include/dcmtk/dcmdata/dcuid.h @@ -487,6 +487,8 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID #define UID_RETIRED_StandalonePETCurveStorage "1.2.840.10008.5.1.4.1.1.129" #define UID_EnhancedPETImageStorage "1.2.840.10008.5.1.4.1.1.130" #define UID_BasicStructuredDisplayStorage "1.2.840.10008.5.1.4.1.1.131" +#define UID_CTDefinedProcedureProtocolStorage "1.2.840.10008.5.1.4.1.1.200.1" +#define UID_CTPerformedProcedureProtocolStorage "1.2.840.10008.5.1.4.1.1.200.2" #define UID_RTImageStorage "1.2.840.10008.5.1.4.1.1.481.1" #define UID_RTDoseStorage "1.2.840.10008.5.1.4.1.1.481.2" #define UID_RTStructureSetStorage "1.2.840.10008.5.1.4.1.1.481.3" @@ -592,6 +594,11 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID #define UID_MOVEImplantTemplateGroupInformationModel "1.2.840.10008.5.1.4.45.3" #define UID_GETImplantTemplateGroupInformationModel "1.2.840.10008.5.1.4.45.4" +// Defined Procedure Protocol Query/Retrieve +#define UID_FINDDefinedProcedureProtocolInformationModel "1.2.840.10008.5.1.4.20.1" +#define UID_MOVEDefinedProcedureProtocolInformationModel "1.2.840.10008.5.1.4.20.2" +#define UID_GETDefinedProcedureProtocolInformationModel "1.2.840.10008.5.1.4.20.3" + // Print Management #define UID_BasicFilmSessionSOPClass "1.2.840.10008.5.1.1.1" #define UID_BasicFilmBoxSOPClass "1.2.840.10008.5.1.1.2" diff --git a/dcmdata/libsrc/dcdictbi.cc b/dcmdata/libsrc/dcdictbi.cc index 42ae3c2d..724a3588 100644 --- a/dcmdata/libsrc/dcdictbi.cc +++ b/dcmdata/libsrc/dcdictbi.cc @@ -4,7 +4,7 @@ ** ** User: joergr ** Host: thinkpad -** Date: 2016-06-13 09:57:11 +** Date: 2016-10-04 12:15:57 ** Prog: /home/joergr/Source/dcmtk-full/public/dcmdata/libsrc/mkdictbi ** ** From: ../data/dicom.dic @@ -700,6 +700,18 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_SH, "TimezoneOffsetFromUTC", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0008, 0x0220, 0x0008, 0x0220, + EVR_SQ, "ResponsibleGroupCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x0221, 0x0008, 0x0221, + EVR_CS, "EquipmentModality", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x0222, 0x0008, 0x0222, + EVR_LO, "ManufacturerRelatedModelGroup", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0008, 0x0300, 0x0008, 0x0300, EVR_SQ, "PrivateDataElementCharacteristicsSequence", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -732,6 +744,42 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_CS, "DeidentificationAction", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0008, 0x0308, 0x0008, 0x0308, + EVR_US, "PrivateDataElement", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x0309, 0x0008, 0x0309, + EVR_UL, "PrivateDataElementValueMultiplicity", 1, 3, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030a, 0x0008, 0x030a, + EVR_CS, "PrivateDataElementValueRepresentation", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030b, 0x0008, 0x030b, + EVR_UL, "PrivateDataElementNumberOfItems", 1, 2, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030c, 0x0008, 0x030c, + EVR_UC, "PrivateDataElementName", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030d, 0x0008, 0x030d, + EVR_UC, "PrivateDataElementKeyword", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030e, 0x0008, 0x030e, + EVR_UT, "PrivateDataElementDescription", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x030f, 0x0008, 0x030f, + EVR_UT, "PrivateDataElementEncoding", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0008, 0x0310, 0x0008, 0x0310, + EVR_SQ, "PrivateDataElementDefinitionSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0008, 0x1000, 0x0008, 0x1000, EVR_AE, "RETIRED_NetworkID", 1, 1, "DICOM/retired", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -2102,6 +2150,18 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_SQ, "PatientSizeCodeSequence", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0010, 0x1022, 0x0010, 0x1022, + EVR_DS, "PatientBodyMassIndex", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0010, 0x1023, 0x0010, 0x1023, + EVR_DS, "MeasuredAPDimension", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0010, 0x1024, 0x0010, 0x1024, + EVR_DS, "MeasuredLateralDimension", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0010, 0x1030, 0x0010, 0x1030, EVR_DS, "PatientWeight", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -2740,6 +2800,14 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_CS, "ConsentForDistributionFlag", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0012, 0x0086, 0x0012, 0x0086, + EVR_DA, "EthicsCommitteeApprovalEffectivenessStartDate", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0012, 0x0087, 0x0012, 0x0087, + EVR_DA, "EthicsCommitteeApprovalEffectivenessEndDate", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } #ifdef ENABLE_PRIVATE_TAGS , { 0x0013, 0x0000, 0x0013, 0x0000, EVR_LT, "ModifyingPhysician", 1, 1, "PrivateTag", @@ -3912,6 +3980,14 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_LO, "GantryID", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0018, 0x1009, 0x0018, 0x1009, + EVR_UT, "UniqueDeviceIdentifier", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x100a, 0x0018, 0x100a, + EVR_SQ, "UDISequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0018, 0x1010, 0x0018, 0x1010, EVR_LO, "SecondaryCaptureDeviceID", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -5885,7 +5961,7 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } , { 0x0018, 0x9323, 0x0018, 0x9323, - EVR_CS, "ExposureModulationType", 1, 1, "DICOM", + EVR_CS, "ExposureModulationType", 1, -1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } , { 0x0018, 0x9324, 0x0018, 0x9324, @@ -6628,6 +6704,242 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_xs, "ZeroVelocityPixelValue", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0018, 0x9900, 0x0018, 0x9900, + EVR_LO, "ReferenceLocationLabel", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9901, 0x0018, 0x9901, + EVR_UT, "ReferenceLocationDescription", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9902, 0x0018, 0x9902, + EVR_SQ, "ReferenceBasisCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9903, 0x0018, 0x9903, + EVR_SQ, "ReferenceGeometryCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9904, 0x0018, 0x9904, + EVR_DS, "OffsetDistance", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9905, 0x0018, 0x9905, + EVR_CS, "OffsetDirection", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9906, 0x0018, 0x9906, + EVR_SQ, "PotentialScheduledProtocolCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9907, 0x0018, 0x9907, + EVR_SQ, "PotentialRequestedProcedureCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9908, 0x0018, 0x9908, + EVR_UC, "PotentialReasonsForProcedure", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9909, 0x0018, 0x9909, + EVR_SQ, "PotentialReasonsForProcedureCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990a, 0x0018, 0x990a, + EVR_UC, "PotentialDiagnosticTasks", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990b, 0x0018, 0x990b, + EVR_SQ, "ContraindicationsCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990c, 0x0018, 0x990c, + EVR_SQ, "ReferencedDefinedProtocolSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990d, 0x0018, 0x990d, + EVR_SQ, "ReferencedPerformedProtocolSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990e, 0x0018, 0x990e, + EVR_SQ, "PredecessorProtocolSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x990f, 0x0018, 0x990f, + EVR_UT, "ProtocolPlanningInformation", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9910, 0x0018, 0x9910, + EVR_UT, "ProtocolDesignRationale", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9911, 0x0018, 0x9911, + EVR_SQ, "PatientSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9912, 0x0018, 0x9912, + EVR_SQ, "ModelSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9913, 0x0018, 0x9913, + EVR_SQ, "ParametersSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9914, 0x0018, 0x9914, + EVR_SQ, "InstructionSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9915, 0x0018, 0x9915, + EVR_US, "InstructionIndex", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9916, 0x0018, 0x9916, + EVR_LO, "InstructionText", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9917, 0x0018, 0x9917, + EVR_UT, "InstructionDescription", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9918, 0x0018, 0x9918, + EVR_CS, "InstructionPerformedFlag", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9919, 0x0018, 0x9919, + EVR_DT, "InstructionPerformedDateTime", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991a, 0x0018, 0x991a, + EVR_UT, "InstructionPerformanceComment", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991b, 0x0018, 0x991b, + EVR_SQ, "PatientPositioningInstructionSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991c, 0x0018, 0x991c, + EVR_SQ, "PositioningMethodCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991d, 0x0018, 0x991d, + EVR_SQ, "PositioningLandmarkSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991e, 0x0018, 0x991e, + EVR_UI, "TargetFrameOfReferenceUID", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x991f, 0x0018, 0x991f, + EVR_SQ, "AcquisitionProtocolElementSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9920, 0x0018, 0x9920, + EVR_SQ, "AcquisitionProtocolElementSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9921, 0x0018, 0x9921, + EVR_US, "ProtocolElementNumber", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9922, 0x0018, 0x9922, + EVR_LO, "ProtocolElementName", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9923, 0x0018, 0x9923, + EVR_UT, "ProtocolElementCharacteristicsSummary", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9924, 0x0018, 0x9924, + EVR_UT, "ProtocolElementPurpose", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9930, 0x0018, 0x9930, + EVR_CS, "AcquisitionMotion", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9931, 0x0018, 0x9931, + EVR_SQ, "AcquisitionStartLocationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9932, 0x0018, 0x9932, + EVR_SQ, "AcquisitionEndLocationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9933, 0x0018, 0x9933, + EVR_SQ, "ReconstructionProtocolElementSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9934, 0x0018, 0x9934, + EVR_SQ, "ReconstructionProtocolElementSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9935, 0x0018, 0x9935, + EVR_SQ, "StorageProtocolElementSpecificationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9936, 0x0018, 0x9936, + EVR_SQ, "StorageProtocolElementSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9937, 0x0018, 0x9937, + EVR_LO, "RequestedSeriesDescription", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9938, 0x0018, 0x9938, + EVR_US, "SourceAcquisitionProtocolElementNumber", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9939, 0x0018, 0x9939, + EVR_US, "SourceAcquisitionBeamNumber", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x993a, 0x0018, 0x993a, + EVR_US, "SourceReconstructionProtocolElementNumber", 1, -1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x993b, 0x0018, 0x993b, + EVR_SQ, "ReconstructionStartLocationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x993c, 0x0018, 0x993c, + EVR_SQ, "ReconstructionEndLocationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x993d, 0x0018, 0x993d, + EVR_SQ, "ReconstructionAlgorithmSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x993e, 0x0018, 0x993e, + EVR_SQ, "ReconstructionTargetCenterLocationSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9941, 0x0018, 0x9941, + EVR_UT, "ImageFilterDescription", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9942, 0x0018, 0x9942, + EVR_FD, "CTDIvolNotificationTrigger", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9943, 0x0018, 0x9943, + EVR_FD, "DLPNotificationTrigger", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9944, 0x0018, 0x9944, + EVR_CS, "AutoKVPSelectionType", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9945, 0x0018, 0x9945, + EVR_FD, "AutoKVPUpperBound", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9946, 0x0018, 0x9946, + EVR_FD, "AutoKVPLowerBound", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } + , { 0x0018, 0x9947, 0x0018, 0x9947, + EVR_CS, "ProtocolDefinedPatientPosition", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0018, 0xa001, 0x0018, 0xa001, EVR_SQ, "ContributingEquipmentSequence", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -11050,6 +11362,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_LO, "RETIRED_Reference", 1, -1, "DICOM/retired", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0020, 0x103f, 0x0020, 0x103f, + EVR_LO, "TargetPositionReferenceIndicator", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0020, 0x1040, 0x0020, 0x1040, EVR_LO, "PositionReferenceIndicator", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -21786,6 +22102,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_SQ, "FiducialSequence", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0070, 0x031f, 0x0070, 0x031f, + EVR_SQ, "FiducialsPropertyCategoryCodeSequence", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } , { 0x0070, 0x0401, 0x0070, 0x0401, EVR_US, "GraphicLayerRecommendedDisplayCIELabValue", 3, 3, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, @@ -23074,6 +23394,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { EVR_UT, "ConstraintViolationCondition", 1, 1, "DICOM", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } + , { 0x0082, 0x0038, 0x0082, 0x0038, + EVR_CS, "ModifiableConstraintFlag", 1, 1, "DICOM", + DcmDictRange_Unspecified, DcmDictRange_Unspecified, + NULL } #ifdef ENABLE_PRIVATE_TAGS , { 0x0087, 0x0010, 0x0087, 0x0010, EVR_CS, "MediaType", 1, 1, "PrivateTag", @@ -24757,7 +25081,7 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = { DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } , { 0x3006, 0x00b9, 0x3006, 0x00b9, - EVR_SQ, "AdditionalRTROIIdentificationCodeSequence", 1, 1, "DICOM", + EVR_SQ, "RETIRED_AdditionalRTROIIdentificationCodeSequence", 1, 1, "DICOM/retired", DcmDictRange_Unspecified, DcmDictRange_Unspecified, NULL } , { 0x3006, 0x00c0, 0x3006, 0x00c0, diff --git a/dcmdata/libsrc/dcuid.cc b/dcmdata/libsrc/dcuid.cc index 18bbad10..6da9f04b 100644 --- a/dcmdata/libsrc/dcuid.cc +++ b/dcmdata/libsrc/dcuid.cc @@ -158,7 +158,9 @@ static const UIDNameMap uidNameMap[] = { { UID_ComputedRadiographyImageStorage, "ComputedRadiographyImageStorage" }, { UID_ContentAssessmentResultsStorage, "ContentAssessmentResultsStorage" }, { UID_CornealTopographyMapStorage, "CornealTopographyMapStorage" }, + { UID_CTDefinedProcedureProtocolStorage, "CTDefinedProcedureProtocolStorage" }, { UID_CTImageStorage, "CTImageStorage" }, + { UID_CTPerformedProcedureProtocolStorage, "CTPerformedProcedureProtocolStorage" }, { UID_DeformableSpatialRegistrationStorage, "DeformableSpatialRegistrationStorage" }, { UID_DigitalIntraOralXRayImageStorageForPresentation, "DigitalIntraOralXRayImageStorageForPresentation" }, { UID_DigitalIntraOralXRayImageStorageForProcessing, "DigitalIntraOralXRayImageStorageForProcessing" }, @@ -362,6 +364,11 @@ static const UIDNameMap uidNameMap[] = { { UID_MOVEImplantTemplateGroupInformationModel, "MOVEImplantTemplateGroupInformationModel" }, { UID_GETImplantTemplateGroupInformationModel, "GETImplantTemplateGroupInformationModel" }, + // Defined Procedure Protocol Query/Retrieve + { UID_FINDDefinedProcedureProtocolInformationModel, "FINDDefinedProcedureProtocolInformationModel" }, + { UID_MOVEDefinedProcedureProtocolInformationModel, "MOVEDefinedProcedureProtocolInformationModel" }, + { UID_GETDefinedProcedureProtocolInformationModel, "GETDefinedProcedureProtocolInformationModel" }, + // Print { UID_BasicAnnotationBoxSOPClass, "BasicAnnotationBoxSOPClass" }, { UID_BasicColorImageBoxSOPClass, "BasicColorImageBoxSOPClass" }, @@ -561,7 +568,9 @@ const char* dcmAllStorageSOPClassUIDs[] = { UID_ComputedRadiographyImageStorage, UID_ContentAssessmentResultsStorage, UID_CornealTopographyMapStorage, + UID_CTDefinedProcedureProtocolStorage, UID_CTImageStorage, + UID_CTPerformedProcedureProtocolStorage, UID_DeformableSpatialRegistrationStorage, UID_DigitalIntraOralXRayImageStorageForPresentation, UID_DigitalIntraOralXRayImageStorageForProcessing, @@ -823,6 +832,8 @@ const char* dcmLongSCUStorageSOPClassUIDs[] = { // UID_CompositingPlanarMPRVolumetricPresentationStateStorage, // UID_ContentAssessmentResultsStorage, // UID_CornealTopographyMapStorage, +// UID_CTDefinedProcedureProtocolStorage, +// UID_CTPerformedProcedureProtocolStorage, // UID_ExtensibleSRStorage, // UID_GrayscalePlanarMPRVolumetricPresentationStateStorage // UID_LegacyConvertedEnhancedCTImageStorage, @@ -1085,7 +1096,9 @@ static const DcmModalityTable modalities[] = { { UID_ComputedRadiographyImageStorage, "CR", 2048 * 2048 * 2 }, { UID_ContentAssessmentResultsStorage, "AS", 4096 }, { UID_CornealTopographyMapStorage, "CM", 512 * 512 }, + { UID_CTDefinedProcedureProtocolStorage, "PPd", 4096 }, { UID_CTImageStorage, "CT", 512 * 512 * 2 }, + { UID_CTPerformedProcedureProtocolStorage, "PPp", 4096 }, { UID_DeformableSpatialRegistrationStorage, "RGd", 4096 }, { UID_DigitalIntraOralXRayImageStorageForPresentation, "DXo", 1024 * 1024 * 2 }, { UID_DigitalIntraOralXRayImageStorageForProcessing, "DPo", 1024 * 1024 * 2 }, diff --git a/dcmfg/include/dcmtk/dcmfg/fgderimg.h b/dcmfg/include/dcmtk/dcmfg/fgderimg.h index 1b4c9c51..24b312eb 100644 --- a/dcmfg/include/dcmtk/dcmfg/fgderimg.h +++ b/dcmfg/include/dcmtk/dcmfg/fgderimg.h @@ -169,41 +169,76 @@ public: */ virtual OFCondition check() const; - /** Convenience function to add item representing reference to a file. No + /** Convenience function to add item representing reference to an object. No * restrictions are set which frames or segments from this image has been * actually used. However, such information could be added to the source * image item later by modifying the resulting item being handed back to the * caller. - * @param file Files that should be referenced by their UID, must be readable. - * @param purposeOfReference Code representing the purpose of reference - * (Defined CID 7202) - * @param resultSourceImageItem The created derivation image item if - * successful, NULL otherwise - * @return EC_Normal if adding works, error code otherwise + * @param file Files that should be referenced by their UID, must be readable. + * @param purposeOfReference Code representing the purpose of reference + * (Defined CID 7202) + * @param resultSourceImageItem The created derivation image item if + * successful, NULL otherwise + * @return EC_Normal if adding works, error code otherwise */ virtual OFCondition addSourceImageItem(const OFString& file, const CodeSequenceMacro& purposeOfReference, SourceImageItem*& resultSourceImageItem); - /** Convenience function to add items representing references to some files + /** Convenience function to add item representing reference to an object. No + * restrictions are set which frames or segments from this image has been + * actually used. However, such information could be added to the source + * image item later by modifying the resulting item being handed back to the + * caller. + * @param dataset DICOM dataset that should be referenced by their UID + * @param purposeOfReference Code representing the purpose of reference + * (Defined CID 7202) + * @param resultSourceImageItem The created derivation image item if + * successful, NULL otherwise + * @return EC_Normal if adding works, error code otherwise + */ + virtual OFCondition addSourceImageItem(DcmDataset *dataset, + const CodeSequenceMacro& purposeOfReference, + SourceImageItem*& resultSourceImageItem); + + /** Convenience function to add items representing references to some objects * which all have the same purpose of reference (code). No restrictions are * set which frames or segments from those images have been actually used. * However, such information could be added to the source image item later by - * modifying the resulting item handed back to the caller. - * @param files List of files that should be referenced by their UIDs. - * @param purposeOfReference Code representing the purpose of reference - * (Defined CID 7202) - * @param resultSourceImageItems The created derivation image items (one per - * file) if successful, NULL otherwise - * @param skipFileErrors If OFTrue, then files that could not be added will - * not lead to error. - * @return EC_Normal if adding works, error code otherwise + * modifying the resulting item handed back to the caller. + * @param files List of files that should be referenced by their UIDs. + * @param purposeOfReference Code representing the purpose of reference + * (Defined CID 7202) + * @param resultSourceImageItems The created derivation image items (one per + * file) if successful, NULL otherwise + * @param skipFileErrors If OFTrue, then files that could not be added will + * not lead to error. + * @return EC_Normal if adding works, error code otherwise */ virtual OFCondition addSourceImageItems(const OFVector& files, const CodeSequenceMacro& purposeOfReference, OFVector& resultSourceImageItems, const OFBool skipFileErrors = OFFalse); + /** Convenience function to add items representing references to some objects + * which all have the same purpose of reference (code). No restrictions are + * set which frames or segments from those images have been actually used. + * However, such information could be added to the source image item later by + * modifying the resulting item handed back to the caller. + * @param datasets List of datasets that should be referenced by their UIDs. + * @param purposeOfReference Code representing the purpose of reference + * (Defined CID 7202) + * @param resultSourceImageItems The created derivation image items (one per + * file) if successful, NULL otherwise + * @param skipErrors If OFTrue, then files that could not be added will + * not lead to error. + * @return EC_Normal if adding works, error code otherwise + */ + virtual OFCondition addSourceImageItems(const OFVector& datasets, + const CodeSequenceMacro& purposeOfReference, + OFVector& resultSourceImageItems, + const OFBool skipErrors = OFFalse); + /** Get Derivation Description * @param value Reference to variable in which the value should be stored * @param pos Index of the value to get (0..vm-1), -1 for all components diff --git a/dcmfg/include/dcmtk/dcmfg/fgfracon.h b/dcmfg/include/dcmtk/dcmfg/fgfracon.h index 09abd86c..2aea9849 100644 --- a/dcmfg/include/dcmtk/dcmfg/fgfracon.h +++ b/dcmfg/include/dcmtk/dcmfg/fgfracon.h @@ -279,14 +279,14 @@ public: /** Set one of the Dimension Index Values * @param value Value that should be set (lowest index starts with 1) - * @param pos The position of the value that should be set (lowest index + * @param dim The position of the value that should be set (lowest index * starts with 0), i.e.\ select the 1st, 2nd, ..nth dimension * @param checkValue Check 'value'. Not evaluated (here for consistency * with other setter functions). * @return EC_Normal, if value was set, error otherwise */ virtual OFCondition setDimensionIndexValues(const Uint32& value, - const unsigned int pos, + const unsigned int dim, const OFBool checkValue = OFTrue); /** Set Temporal Position Index diff --git a/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h b/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h new file mode 100644 index 00000000..c29a78e9 --- /dev/null +++ b/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h @@ -0,0 +1,157 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmfg + * + * Author: Michael Onken + * + * Purpose: Class for managing Frame Anatomy Functional Group + * + */ + +#ifndef FGFRAMEANATOMY_H +#define FGFRAMEANATOMY_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcitem.h" +#include "dcmtk/dcmiod/iodmacro.h" +#include "dcmtk/dcmfg/fgbase.h" + +/** Class representing the Frame Anatomy Functional Group Macro + */ +class DCMTK_DCMFG_EXPORT FGFrameAnatomy : public FGBase +{ +public: + + /** Enumerated values for attribute "Laterality" + */ + enum LATERALITY + { + /// Undefined (e.g.\ value not set) + LATERALITY_UNDEFINED, + /// Invalid Laterality, e.g. when invalid value is read from file + LATERALITY_INVALID, + /// Right body part + LATERALITY_R, + /// Left body part + LATERALITY_L, + /// Unpaired body part + LATERALITY_UNPAIRED, + /// Both, left and right + LATERALITY_BOTH + }; + + /** Constructor, creates empty Frame Anatomy Functional Group + */ + FGFrameAnatomy(); + + /** Virtual destructor, frees memory + */ + virtual ~FGFrameAnatomy(); + + /** Returns a deep copy of this object + * @return Deep copy of this object + */ + virtual FGBase *clone() const; + + /** Returns shared type of this group (can be shared or per-frame) + * @return Always returns DcmFGTypes::EFGS_BOTH; + */ + virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;} + + /** Clear all data + */ + virtual void clearData(); + + /** Check whether data in functional group is valid + * @return EC_Normal if data is valid, error otherwise + */ + virtual OFCondition check() const; + + /** Read functional group from given item + * @param item The item to read from, must contain Frame Anatomy Sequence + * @return EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& item); + + /** Write functional group to given item + * @param item The item to write Frame Anatomy Sequence to + * @return EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& item); + + // --- get() functionality --- + + /** Get Laterality + * @param value Reference to variable in which the value should be stored + * @return EC_Normal if successful, an error code otherwise (i.e. if + * value is LATERALITY_INVALID). + */ + virtual OFCondition getLaterality(LATERALITY& value); + + /** Get anatomy information + * @return Reference to anatomic information + */ + virtual GeneralAnatomyMacro& getAnatomy(); + + // --- set() functionality --- + + /** Set Laterality + * @param value Value to be set + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLaterality(const LATERALITY& value); + + /** Comparison operator that compares the normalized value of this object + * with a given object of the same type, i.e.\ the elements within both + * functional groups (this and rhs parameter) are compared by value! + * Both objects (this and rhs) need to have the same type (i.e.\ both + * FGUnknown) to be comparable. This function is used in order + * to decide whether a functional group already exists, or is new. This + * is used in particular to find out whether a given functional group + * can be shared (i.e.\ the same information already exists as shared + * functional group) or is different from the same shared group. In that + * case the shared functional group must be distributed into per-frame + * functional groups, instead. The exact implementation for implementing + * the comparison is not relevant. However, it must be a comparison + * by value. + * @param rhs the right hand side of the comparison + * @return 0 if the object values are equal. + * -1 if either the value of the first component that does not match + * is lower in the this object, or all compared components match + * but this component is shorter. Also returned if this type and + * rhs type (DcmFGTypes::E_FGType) do not match. + * 1 if either the value of the first component that does not match + * is greater in this object, or all compared components match + * but this component is longer. + */ + virtual int compare(const FGBase& rhs) const; + + static LATERALITY str2Laterality(const OFString& lat); + + static OFString laterality2Str(const LATERALITY lat); + + static OFBool isLateralityValid(const LATERALITY lat); + +private: + + /* Content of Frame Anatomy Macro */ + + /// Frame Laterality (DS, VM 1, Required type 1) + LATERALITY m_FrameLaterality; + + /// General Anatomy Mandatory Macro + GeneralAnatomyMacro m_Anatomy; +}; + +#endif // FGFRAMEANATOMY_H diff --git a/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h b/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h new file mode 100644 index 00000000..5778ccd0 --- /dev/null +++ b/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h @@ -0,0 +1,174 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmfg + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Identity Pixel Value Transformation Functional Group + * + */ + +#ifndef FGIDENTPIXELTRANSFORM_H +#define FGIDENTPIXELTRANSFORM_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcitem.h" +#include "dcmtk/dcmfg/fgbase.h" +#include "dcmtk/dcmdata/dcvrds.h" +#include "dcmtk/dcmdata/dcvrlo.h" + + +/** Class representing the Identity Pixel Value Transformation Functional Group Macro. + */ +class DCMTK_DCMFG_EXPORT FGIdentityPixelValueTransformation : public FGBase +{ +public: + + /** Constructor, creates Identity Pixel Value Transformation Functional Group. + * All values (Rescale Slope, Intercept and Type) are set to their only valid + * enumerated value listed in the standard, i.e. slope = 1, intercept = 0 and + * type = "US". + */ + FGIdentityPixelValueTransformation(); + + /** Destructor, frees memory + */ + virtual ~FGIdentityPixelValueTransformation(); + + /** Returns a deep copy of this object + * @return Deep copy of this object + */ + virtual FGBase *clone() const; + + /** Get shared type of this functional group (can be both, per-frame and + * shared) + * @return Always returns EFGS_BOTH + */ + virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;} + + /** Clears all data + */ + virtual void clearData(); + + /** Check whether functional group contains valid data + * @return EC_Normal if data is valid, error otherwise + */ + virtual OFCondition check() const; + + /** Read functional group from given item, i.e.\ read Identity Pixel Value + * Transformation Sequence. Clears existing data before reading. + * @param item The item to read from + * @return EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& item); + + /** Write functional group to given item, i.e.\ write Identity Pixel Value Transformation Sequence + * @param item The item to write to + * @return EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& item); + + /** Get RescaleIntercept + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRescaleIntercept(OFString &value, + const signed long pos = 0) const; + + /** Get RescaleSlope + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRescaleSlope(OFString &value, + const signed long pos = 0) const; + + /** Get RescaleType + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRescaleType(OFString &value, + const signed long pos = 0) const; + + /** Comparison operator that compares the normalized value of this object + * with a given object of the same type, i.e.\ the elements within both + * functional groups (this and rhs parameter) are compared by value! + * Both objects (this and rhs) need to have the same type (i.e.\ both + * FGUnknown) to be comparable. This function is used in order + * to decide whether a functional group already exists, or is new. This + * is used in particular to find out whether a given functional group + * can be shared (i.e.\ the same information already exists as shared + * functional group) or is different from the same shared group. In that + * case the shared functional group must be distributed into per-frame + * functional groups, instead. The exact implementation for implementing + * the comparison is not relevant. However, it must be a comparison + * by value. + * @param rhs the right hand side of the comparison + * @return 0 if the object values are equal. + * -1 if either the value of the first component that does not match + * is lower in the this object, or all compared components match + * but this component is shorter. Also returned if this type and + * rhs type (DcmFGTypes::E_FGType) do not match. + * 1 if either the value of the first component that does not match + * is greater in this object, or all compared components match + * but this component is longer. + */ + virtual int compare(const FGBase& rhs) const; + +protected: + + /** Set RescaleIntercept. Hidden from user since value must always be equal + * to 1 (automatically set on write). + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRescaleIntercept(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set RescaleSlope. Hidden from user since value must always be equal + * to 1 (automatically set on write). + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRescaleSlope(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set RescaleType. Hidden from user since value must always be equal + * to "US" for "unspecified" (automatically set on write). + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRescaleType(const OFString &value, + const OFBool checkValue = OFTrue); + +private: + + /* Content of Identity Pixel Value Transformation Functional Group Macro */ + + /// RescaleIntercept (DS, VM 1, Required type 1) + DcmDecimalString m_RescaleIntercept; + + /// RescaleSlope (DS, VM 1, Required type 1) + DcmDecimalString m_RescaleSlope; + + /// RescaleType (LO, VM 1, Required type 1) + DcmLongString m_RescaleType; +}; + +#endif // FGIDENTPIXELTRANSFORM_H diff --git a/dcmfg/include/dcmtk/dcmfg/fginterface.h b/dcmfg/include/dcmtk/dcmfg/fginterface.h index 5af1df15..ba2c3da7 100644 --- a/dcmfg/include/dcmtk/dcmfg/fginterface.h +++ b/dcmfg/include/dcmtk/dcmfg/fginterface.h @@ -134,7 +134,7 @@ public: /** Add functional group that should be shared for all frames. This will * delete all per-frame groups of the same type if existing. - * @param group The group to be added (copy is performed) + * @param group The group to be added. The group is copied. * @return EC_Normal, if adding was successful, error otherwise */ virtual OFCondition addShared(const FGBase& group); @@ -148,7 +148,9 @@ public: * overwritten. * @param frameNo The frame number this group should be added for (starts * from 0) - * @param group The group to be added + * @param group The group to be added. The group is copied when adding, + * so the ownership stays with the caller, no matter what the + * method returns. * @return EC_Normal, if adding was successful, error otherwise */ virtual OFCondition addPerFrame(const Uint32 frameNo, @@ -162,7 +164,8 @@ public: virtual OFBool deleteShared(const DcmFGTypes::E_FGType fgType); /** Deletes per-frame functional group of the given type for a specific frame - * @param frameNo The frame number for the functional group of interest + * @param frameNo The frame number for the functional group of interest. + * First frame is frame 0. * @param fgType The type of functional group to delete * @return OFTrue if group existed and could be deleted, OFFalse (group did * not exist) otherwise @@ -173,10 +176,17 @@ public: /** Deletes per-frame functional group for all frames * @param fgType The type of functional group to delete * @return Number of per-frame groups deleted (usually equal to number of - * images) + * frames) */ size_t deletePerFrame(const DcmFGTypes::E_FGType fgType); + /** Deletes all functional groups for a specific frame + * @param frameNo The frame number whose functional groups should be deleted. + * First frame is frame 0. + * @return Number of per-frame groups deleted for this frame + */ + size_t deleteFrame(const Uint32 frameNo); + protected: /** Get shared functional group based on its type diff --git a/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h b/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h new file mode 100644 index 00000000..fd463464 --- /dev/null +++ b/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h @@ -0,0 +1,124 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmfg + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Frame Type Functional Group + * + */ + +#ifndef FGPARAMETRICMAPFRAMETYPE_H +#define FGPARAMETRICMAPFRAMETYPE_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcitem.h" +#include "dcmtk/dcmfg/fgbase.h" +#include "dcmtk/dcmdata/dcvrcs.h" + +/** Class representing the Parametric Map Frame Type Functional Group Macro. + */ +class DCMTK_DCMFG_EXPORT FGParametricMapFrameType : public FGBase +{ +public: + /** Constructor, creates empty Parametric Map Frame Type Functional Group + */ + FGParametricMapFrameType(); + + /** Destructor, frees memory + */ + virtual ~FGParametricMapFrameType(); + + /** Returns a deep copy of this object + * @return Deep copy of this object + */ + virtual FGBase *clone() const; + + /** Get shared type of this functional group (can be both, per-frame and + * shared) + * @return Always returns EFGS_BOTH + */ + virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;} + + /** Clears all data + */ + virtual void clearData(); + + /** Check whether functional group contains valid data + * @return EC_Normal if data is valid, error otherwise + */ + virtual OFCondition check() const; + + /** Read functional group from given item, i.e.\ read Parametric Map Frame Type Sequence + * @param item The item to read from + * @return EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& item); + + /** Write functional group to given item, i.e.\ write Parametric Map Frame Type Sequence + * @param item The item to write to + * @return EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& item); + + /** Get FrameType + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFrameType(OFString &value, + const signed long pos = 0) const; + + /** Set FrameType + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (4) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFrameType(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Comparison operator that compares the normalized value of this object + * with a given object of the same type, i.e.\ the elements within both + * functional groups (this and rhs parameter) are compared by value! + * Both objects (this and rhs) need to have the same type (i.e.\ both + * FGUnknown) to be comparable. This function is used in order + * to decide whether a functional group already exists, or is new. This + * is used in particular to find out whether a given functional group + * can be shared (i.e.\ the same information already exists as shared + * functional group) or is different from the same shared group. In that + * case the shared functional group must be distributed into per-frame + * functional groups, instead. The exact implementation for implementing + * the comparison is not relevant. However, it must be a comparison + * by value. + * @param rhs the right hand side of the comparison + * @return 0 if the object values are equal. + * -1 if either the value of the first component that does not match + * is lower in the this object, or all compared components match + * but this component is shorter. Also returned if this type and + * rhs type (DcmFGTypes::E_FGType) do not match. + * 1 if either the value of the first component that does not match + * is greater in this object, or all compared components match + * but this component is longer. + */ + virtual int compare(const FGBase& rhs) const; + +private: + + /* Content of Parametric Map Frame Type Functional Group Macro */ + + /// FrameType (CS, VM 4, Required type 1) + DcmCodeString m_FrameType; +}; + +#endif // FGPARAMETRICMAPFRAMETYPE_H diff --git a/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h b/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h index f585b2f5..0465b53f 100644 --- a/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h +++ b/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h @@ -27,6 +27,7 @@ #include "dcmtk/dcmdata/dcitem.h" #include "dcmtk/dcmiod/modbase.h" #include "dcmtk/dcmiod/iodmacro.h" +#include "dcmtk/dcmiod/iodcontentitemmacro.h" /** Class representing the Real World Value Mapping Functional Group that * specifies the mapping of stored values to associated Real World values @@ -131,7 +132,7 @@ private: * LUT Explanation (LO, 1, 1) * LUT Label (SH, 1, 1) * Measurement Units Code Sequence (SQ, 1, 1) - * Not yet supported: Quantity Definition Sequence (SQ, 1, 3) + * Quantity Definition Sequence (SQ, 1, 3) */ class DCMTK_DCMFG_EXPORT FGRealWorldValueMapping::RWVMItem : public IODComponent { @@ -153,6 +154,11 @@ public: */ RWVMItem(IODComponent* parent = NULL); + /** Copy Constructor + * @param rhs The item to copy from + */ + RWVMItem(const RWVMItem& rhs); + /** Clone this class (perform deep copy) * @return Clone of this class or NULL (e.g.\ if memory exhausted) */ @@ -229,6 +235,22 @@ public: virtual OFCondition getRealWorldValueLastValueMapped(Sint32 &value, const unsigned long pos = 0) const; + /** Get Double Float Real World Value First Value Mapped + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDoubleFloatRealWorldValueFirstValueMapped(Float64& value, + const unsigned long pos = 0) const; + + /** Get Double Float Real World Value Last Value Mapped + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDoubleFloatRealWorldValueLastValueMapped(Float64& value, + const unsigned long pos = 0) const; + /** Get Real World Value LUT Data * @param value Reference to variable in which the value should be stored * @param pos Index of the value to get (0..vm-1) @@ -264,6 +286,12 @@ public: */ virtual CodeSequenceMacro& getMeasurementUnitsCode(); + /** Get a reference to the entire ConceptNameCodeSequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire ConceptNameCodeSequence + */ + virtual OFVector& getEntireQuantityDefinitionSequence(); + // --- set() functionality --- /** Set Real World Value First Value Mapped @@ -274,7 +302,7 @@ public: * if enabled * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition setRealWorldValueFirstValueMappedUnsigned(const Uint16 &value, + virtual OFCondition setRealWorldValueFirstValueMappedUnsigned(const Uint16 value, const OFBool checkValue = OFTrue); /** Set Real World Value First Value Mapped @@ -296,7 +324,7 @@ public: * if enabled * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition setRealWorldValueLastValueMappedUnsigned(const Uint16 &value, + virtual OFCondition setRealWorldValueLastValueMappedUnsigned(const Uint16 value, const OFBool checkValue = OFTrue); /** Set Real World Value Last Value Mapped @@ -308,7 +336,25 @@ public: * @return EC_Normal if successful, an error code otherwise */ virtual OFCondition setRealWorldValueLastValueMappedSigned(const Sint16 &value, - const OFBool checkValue = OFTrue); + const OFBool checkValue = OFTrue); + + /** Set Double Float Real World Value First Value Mapped + * @param value Value to be set + * @param checkValue Check 'value'. Does nothing, only for consistency with + * other set() functions. + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, + const OFBool checkValue = OFTrue); + + /** Set Double Float Real World Value Last Value Mapped + * @param value Value to be set + * @param checkValue Check 'value'. Does nothing, only for consistency with + * other set() functions. + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, + const OFBool checkValue = OFTrue); /** Set Real World Value Intercept * @param value Value to be set @@ -316,7 +362,7 @@ public: * with other setter functions). * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition setRealWorldValueIntercept(const Float64& value, + virtual OFCondition setRealWorldValueIntercept(const Float64 value, const OFBool checkValue = OFTrue); /** Set Real World Value Slope @@ -325,7 +371,7 @@ public: * with other setter functions). * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition setRealWorldValueSlope(const Float64& value, + virtual OFCondition setRealWorldValueSlope(const Float64 value, const OFBool checkValue = OFTrue); /** Set Real World Value LUT Data @@ -367,7 +413,8 @@ private: /// Measurement Units Code Sequence CodeSequenceMacro m_MeasurementUnitsCode; - /// TODO Content Item Macro for Quantity Definition Sequence + /// Quantity Definition Sequence + OFVector m_QuantityDefinitionSequence; }; #endif // FGREALWORLDVALUEMAPPING_H diff --git a/dcmfg/include/dcmtk/dcmfg/fgtypes.h b/dcmfg/include/dcmtk/dcmfg/fgtypes.h index 451cfe7c..22bdfca3 100644 --- a/dcmfg/include/dcmtk/dcmfg/fgtypes.h +++ b/dcmfg/include/dcmtk/dcmfg/fgtypes.h @@ -48,7 +48,7 @@ extern DCMTK_DCMFG_EXPORT OFLogger DCM_dcmfgLogger; * constant definitions * *-----------------------*/ -/* Specific error conditions for module dcmfg.(TODO) +/* Specific error conditions for module dcmfg. * These error codes can be used in addition to the general purpose * codes defined in module dcmdata. */ @@ -120,10 +120,14 @@ public: EFG_FRAMEPIXELSHIFT, /// "Frame VOI LUT" or "Frame VOI LUT with LUT" Macro (share same starting sequence) EFG_FRAMEVOILUTMETA, + /// Identity Pixel Value Transformation + EFG_IDENTITYPIXELVALUETRANSFORMATION, /// Image Data Type EFG_IMAGEDATATYPE, /// Irradiation Event Identification EFG_IRRADIATIONEVENTIDENT, + /// Parametric Map Frame Type + EFG_PARAMETRICMAPFRAMETYPE, /// Patient Orientation in Frame EFG_PATIENTORIENTINFRAME, /// Patient Physiological State diff --git a/dcmfg/include/dcmtk/dcmfg/stack.h b/dcmfg/include/dcmtk/dcmfg/stack.h index 6e3e107d..a04b84a2 100644 --- a/dcmfg/include/dcmtk/dcmfg/stack.h +++ b/dcmfg/include/dcmtk/dcmfg/stack.h @@ -76,8 +76,6 @@ public: */ virtual ~FGStack(); - // TODO add sorted iterators using views, for example - /** Return const iterator to first frame (not sorted after stack position) * @return Const iterator to first frame */ @@ -137,8 +135,6 @@ private: /// More than one frame can have the same in-stack position OFMap m_FrameNumbers; - // TODO Maybe add a redundant data structures mapping in-stack positions - // to frame numbers in order to enable fast access? }; #endif // STACKREADER_H diff --git a/dcmfg/libsrc/CMakeLists.txt b/dcmfg/libsrc/CMakeLists.txt index c37d8683..6d2afe3d 100644 --- a/dcmfg/libsrc/CMakeLists.txt +++ b/dcmfg/libsrc/CMakeLists.txt @@ -5,10 +5,13 @@ DCMTK_ADD_LIBRARY(dcmfg fgderimg fgfact fgfracon + fgframeanatomy fgframevoilut + fgidentpixeltransform fgimagedatatype fginterface fgpixmsr + fgparametricmapframetype fgplanor fgplanorvol fgplanpo diff --git a/dcmfg/libsrc/Makefile.dep b/dcmfg/libsrc/Makefile.dep index 62c13c95..8617090d 100644 --- a/dcmfg/libsrc/Makefile.dep +++ b/dcmfg/libsrc/Makefile.dep @@ -429,6 +429,8 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -459,11 +461,9 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -494,13 +494,18 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmfg/fgbase.h \ - ../include/dcmtk/dcmfg/fgfracon.h ../include/dcmtk/dcmfg/fgframevoilut.h \ + ../include/dcmtk/dcmfg/fgfracon.h \ + ../include/dcmtk/dcmfg/fgframeanatomy.h \ + ../include/dcmtk/dcmfg/fgframevoilut.h \ + ../include/dcmtk/dcmfg/fgidentpixeltransform.h \ ../include/dcmtk/dcmfg/fgimagedatatype.h \ + ../include/dcmtk/dcmfg/fgparametricmapframetype.h \ ../include/dcmtk/dcmfg/fgpixmsr.h ../include/dcmtk/dcmfg/fgplanor.h \ ../include/dcmtk/dcmfg/fgplanorvol.h ../include/dcmtk/dcmfg/fgplanpo.h \ ../include/dcmtk/dcmfg/fgplanposvol.h ../include/dcmtk/dcmfg/fgseg.h \ ../include/dcmtk/dcmfg/fgusimagedescription.h \ - ../include/dcmtk/dcmfg/fgrealworldvaluemapping.h + ../include/dcmtk/dcmfg/fgrealworldvaluemapping.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ @@ -561,6 +566,8 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -590,11 +597,9 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -623,6 +628,131 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \ ../include/dcmtk/dcmfg/fgdefine.h +fgframeanatomy.o: fgframeanatomy.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmfg/fgframeanatomy.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmfg/fgbase.h \ + ../include/dcmtk/dcmfg/fgtypes.h ../include/dcmtk/dcmfg/fgdefine.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h fgframevoilut.o: fgframevoilut.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ @@ -684,6 +814,8 @@ fgframevoilut.o: fgframevoilut.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -714,11 +846,132 @@ fgframevoilut.o: fgframevoilut.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmfg/fgdefine.h +fgidentpixeltransform.o: fgidentpixeltransform.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmfg/fgidentpixeltransform.h \ + ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -807,6 +1060,8 @@ fgimagedatatype.o: fgimagedatatype.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -837,11 +1092,9 @@ fgimagedatatype.o: fgimagedatatype.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -933,6 +1186,8 @@ fginterface.o: fginterface.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ @@ -960,11 +1215,9 @@ fginterface.o: fginterface.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -994,6 +1247,129 @@ fginterface.o: fginterface.cc \ ../include/dcmtk/dcmfg/fgtypes.h ../include/dcmtk/dcmfg/fgdefine.h \ ../include/dcmtk/dcmfg/fg.h ../include/dcmtk/dcmfg/fgbase.h \ ../include/dcmtk/dcmfg/fgfact.h +fgparametricmapframetype.o: fgparametricmapframetype.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmfg/fgparametricmapframetype.h \ + ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmfg/fgdefine.h fgpixmsr.o: fgpixmsr.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmfg/fgpixmsr.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ @@ -1300,6 +1676,8 @@ fgplanorvol.o: fgplanorvol.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -1330,11 +1708,9 @@ fgplanorvol.o: fgplanorvol.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -1544,6 +1920,8 @@ fgplanposvol.o: fgplanposvol.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -1574,11 +1952,9 @@ fgplanposvol.o: fgplanposvol.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -1730,6 +2106,7 @@ fgrealworldvaluemapping.o: fgrealworldvaluemapping.cc \ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h fgseg.o: fgseg.cc ../../config/include/dcmtk/config/osconfig.h \ @@ -2048,6 +2425,8 @@ fgusimagedescription.o: fgusimagedescription.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -2078,11 +2457,9 @@ fgusimagedescription.o: fgusimagedescription.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -2185,6 +2562,8 @@ stackinterface.o: stackinterface.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -2215,11 +2594,9 @@ stackinterface.o: stackinterface.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ diff --git a/dcmfg/libsrc/fg.cc b/dcmfg/libsrc/fg.cc index c7fe5da5..31ab951e 100644 --- a/dcmfg/libsrc/fg.cc +++ b/dcmfg/libsrc/fg.cc @@ -53,7 +53,8 @@ FGBase* FunctionalGroups::find(const DcmFGTypes::E_FGType fgType) { FGBase* group = NULL; FunctionalGroups::iterator it = m_groups.find(fgType); - if ( it != m_groups.end() ) + FunctionalGroups::iterator end = m_groups.end(); + if ( it != end ) { group = (*it).second; } diff --git a/dcmfg/libsrc/fgbase.cc b/dcmfg/libsrc/fgbase.cc index 0e585260..3cb43c36 100644 --- a/dcmfg/libsrc/fgbase.cc +++ b/dcmfg/libsrc/fgbase.cc @@ -162,7 +162,6 @@ OFCondition FGUnknown::write(DcmItem& item) OFCondition FGUnknown::check() const { - // TODO return EC_Normal; } diff --git a/dcmfg/libsrc/fgderimg.cc b/dcmfg/libsrc/fgderimg.cc index e8776da3..c517ea6f 100644 --- a/dcmfg/libsrc/fgderimg.cc +++ b/dcmfg/libsrc/fgderimg.cc @@ -157,8 +157,15 @@ void FGDerivationImage::clearData() OFCondition FGDerivationImage::check() const { - // TODO - return EC_Normal; + OFCondition result; + OFVector::const_iterator it = m_DerivationImageItems.begin(); + while ( (it != m_DerivationImageItems.end()) && result.good() ) + { + result = (*it)->check(); + it++; + } + + return result; } DerivationImageItem& DerivationImageItem::operator=(const DerivationImageItem& rhs) @@ -243,7 +250,7 @@ OFCondition FGDerivationImage::read(DcmItem& item) OFCondition FGDerivationImage::write(DcmItem& item) { - OFCondition result = EC_Normal; + OFCondition result = check(); DcmIODUtil::writeSubSequence > ( result, DCM_DerivationImageSequence, @@ -288,8 +295,13 @@ void SourceImageItem::clearData() OFCondition SourceImageItem::check() const { - // TODO - return EC_Normal; + OFCondition result = OFconst_cast(ImageSOPInstanceReferenceMacro*, &m_ImageSOPInstanceReference)->check(); + if (result.bad()) + { + return result; + } + + return OFconst_cast(CodeSequenceMacro*, &m_PurposeOfReferenceCode)->check(); } @@ -351,7 +363,7 @@ OFCondition SourceImageItem::write(DcmItem& itemOfSourceImageSequence) } -/* -- Class DerivationImages Implementation -- */ +/* -- Class DerivationImageItem Implementation -- */ DerivationImageItem::DerivationImageItem() : m_DerivationDescription(DCM_DerivationDescription), @@ -459,10 +471,28 @@ int DerivationImageItem::compare(const DerivationImageItem& rhs) const OFCondition DerivationImageItem::check() const { - // TODO - return EC_Normal; -} + if (m_DerivationCodeItems.size() == 0) + { + DCMFG_ERROR("Derivation Code Sequence in Derivation Image Functional Group Macro must have one or more items"); + return FG_EC_InvalidData; + } + OFCondition result; + OFVector::const_iterator it = m_DerivationCodeItems.begin(); + while (it != m_DerivationCodeItems.end() && result.good()) + { + result = (*it)->check(); + it++; + } + + OFVector::const_iterator ref = m_SourceImageItems.begin(); + while ((ref != m_SourceImageItems.end()) && result.good()) + { + result = (*ref)->check(); + ref++; + } + return result; +} DerivationImageItem::~DerivationImageItem() @@ -474,6 +504,23 @@ DerivationImageItem::~DerivationImageItem() OFCondition DerivationImageItem::addSourceImageItem(const OFString& file, const CodeSequenceMacro& purposeOfReference, SourceImageItem*& resultSourceImageItem) +{ + DcmFileFormat dcmff; + DcmDataset *dataset = NULL; + OFCondition result = dcmff.loadFile(file.c_str()); + if (result.bad()) + { + DCMFG_ERROR("Could not load file " << file << ": " << result.text()); + return result; + } + dataset = dcmff.getDataset(); + return addSourceImageItem(dataset, purposeOfReference, resultSourceImageItem); +} + + +OFCondition DerivationImageItem::addSourceImageItem(DcmDataset *dataset, + const CodeSequenceMacro& purposeOfReference, + SourceImageItem*& resultSourceImageItem) { // Create new source image item SourceImageItem *item = new SourceImageItem(); @@ -481,11 +528,18 @@ OFCondition DerivationImageItem::addSourceImageItem(const OFString& file, { return EC_MemoryExhausted; } + + // check code validity + if ( OFconst_cast(CodeSequenceMacro*, &purposeOfReference)->check().bad() ) + { + DCMFG_ERROR("Purpose of Reference code within item of Derivation Image Sequence is invalid"); + return FG_EC_InvalidData; + } + item->getPurposeOfReferenceCode() = purposeOfReference; - // TODO: Check code for completeness, and context group? resultSourceImageItem = NULL; OFString sopClass, sopInstance, ts; - OFCondition result = DcmDataUtil::getSOPInstanceFromFile(file, sopClass, sopInstance, ts /*ignored*/); + OFCondition result = DcmDataUtil::getSOPInstanceFromDataset(dataset, EXS_Unknown, sopClass, sopInstance, ts /*ignored*/); { if ( result.good() ) result = item->getImageSOPInstanceReference().setReferencedSOPClassUID(sopClass); if ( result.good() ) result = item->getImageSOPInstanceReference().setReferencedSOPInstanceUID(sopInstance); @@ -495,6 +549,11 @@ OFCondition DerivationImageItem::addSourceImageItem(const OFString& file, m_SourceImageItems.push_back(item); resultSourceImageItem = item; } + else + { + delete item; + } + return result; } @@ -504,10 +563,35 @@ OFCondition DerivationImageItem::addSourceImageItems(const OFVector< OFString >& OFVector& resultSourceImageItems, const OFBool skipErrors) { - // Add files + DcmFileFormat dcmff; OFCondition result; + DcmDataset *dataset = NULL; + OFVector datasets; OFVector::const_iterator it = files.begin(); while (it != files.end()) + { + result = dcmff.loadFile((*it).c_str()); + if (result.bad()) + { + DCMFG_ERROR("Could not load file " << (*it) << ": " << result.text()); + return result; + } + dataset = dcmff.getDataset(); + datasets.push_back(dataset); + it++; + } + return addSourceImageItems(datasets, purposeOfReference, resultSourceImageItems, skipErrors); +} + + +OFCondition DerivationImageItem::addSourceImageItems(const OFVector& datasets, + const CodeSequenceMacro& purposeOfReference, + OFVector& resultSourceImageItems, + const OFBool skipErrors) + { + OFCondition result; + OFVector::const_iterator it = datasets.begin(); + while (it != datasets.end()) { SourceImageItem* resultItem = NULL; result = addSourceImageItem((*it), purposeOfReference, resultItem); diff --git a/dcmfg/libsrc/fgfact.cc b/dcmfg/libsrc/fgfact.cc index 6285a310..c8fcd303 100644 --- a/dcmfg/libsrc/fgfact.cc +++ b/dcmfg/libsrc/fgfact.cc @@ -24,8 +24,11 @@ #include "dcmtk/dcmfg/fgfact.h" #include "dcmtk/dcmfg/fgderimg.h" #include "dcmtk/dcmfg/fgfracon.h" +#include "dcmtk/dcmfg/fgframeanatomy.h" #include "dcmtk/dcmfg/fgframevoilut.h" +#include "dcmtk/dcmfg/fgidentpixeltransform.h" #include "dcmtk/dcmfg/fgimagedatatype.h" +#include "dcmtk/dcmfg/fgparametricmapframetype.h" #include "dcmtk/dcmfg/fgpixmsr.h" #include "dcmtk/dcmfg/fgplanor.h" #include "dcmtk/dcmfg/fgplanorvol.h" @@ -62,11 +65,18 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype) case DcmFGTypes::EFG_PIXELMEASURES: return new FGPixelMeasures(); break; + case DcmFGTypes::EFG_FRAMEANATOMY: + return new FGFrameAnatomy(); + break; case DcmFGTypes::EFG_FRAMECONTENT: return new FGFrameContent(); break; case DcmFGTypes::EFG_FRAMEVOILUTMETA: // Frame VOI LUT and Frame VOI LUT with LUT return new FGFrameVOILUT(); + break; + case DcmFGTypes::EFG_PARAMETRICMAPFRAMETYPE: + return new FGParametricMapFrameType; + break; case DcmFGTypes::EFG_PLANEPOSPATIENT: return new FGPlanePosPatient(); break; @@ -80,6 +90,9 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype) case DcmFGTypes::EFG_DERIVATIONIMAGE: return new FGDerivationImage(); break; + case DcmFGTypes::EFG_IDENTITYPIXELVALUETRANSFORMATION: + return new FGIdentityPixelValueTransformation(); + break; case DcmFGTypes::EFG_IMAGEDATATYPE: return new FGImageDataType(); break; @@ -93,7 +106,6 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype) return new FGUSImageDescription(); break; case DcmFGTypes::EFG_CARDIACSYNC: - case DcmFGTypes::EFG_FRAMEANATOMY: case DcmFGTypes::EFG_PIXELVALUETRANSMETA: // Pixel Value Transformation Macro or Identity Pixel Value Transformation Macro case DcmFGTypes::EFG_CONTRASTBOLUSUSAGE: case DcmFGTypes::EFG_PIXELINTENSITYRELLUT: diff --git a/dcmfg/libsrc/fgfracon.cc b/dcmfg/libsrc/fgfracon.cc index 0d307317..e60124f6 100644 --- a/dcmfg/libsrc/fgfracon.cc +++ b/dcmfg/libsrc/fgfracon.cc @@ -91,7 +91,7 @@ void FGFrameContent::clearData() OFCondition FGFrameContent::check() const { - // TODO + // Maybe add checks later return EC_Normal; } @@ -315,7 +315,7 @@ OFCondition FGFrameContent::setRespiratoryCyclePosition(const OFString& value, } OFCondition FGFrameContent::setDimensionIndexValues(const Uint32& value, - const unsigned int pos, + const unsigned int dim, const OFBool checkValue) { // no other meaningful checks possible in this context @@ -325,7 +325,7 @@ OFCondition FGFrameContent::setDimensionIndexValues(const Uint32& value, DCMFG_ERROR("Cannot set dimension index value 0, must be >= 1)"); return EC_InvalidValue; } - return m_DimensionIndexValues.putUint32(value, pos); + return m_DimensionIndexValues.putUint32(value, dim); } OFCondition FGFrameContent::setTemporalPositionIndex(const Uint32& value, diff --git a/dcmfg/libsrc/fgframeanatomy.cc b/dcmfg/libsrc/fgframeanatomy.cc new file mode 100644 index 00000000..405d2a15 --- /dev/null +++ b/dcmfg/libsrc/fgframeanatomy.cc @@ -0,0 +1,203 @@ +/* + * + * Copyright (C) 2015-2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmfg + * + * Author: Michael Onken + * + * Purpose: Class for managing Frame Anatomy Functional Group + * + */ + + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmfg/fgframeanatomy.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmiod/iodutil.h" + + +FGFrameAnatomy::FGFrameAnatomy() +: FGBase(DcmFGTypes::EFG_FRAMEANATOMY), + m_FrameLaterality(LATERALITY_UNDEFINED), + m_Anatomy("1" /* Use Mandatory version of macro, i.e. make "Anatomic Region Sequence type 1" */) +{ +} + + +FGFrameAnatomy::~FGFrameAnatomy() +{ + // nothing to do +} + + +FGBase* FGFrameAnatomy::clone() const +{ + FGFrameAnatomy* copy = new FGFrameAnatomy(); + if (copy) + { + copy->m_FrameLaterality= this->m_FrameLaterality; + copy->m_Anatomy = this->m_Anatomy; + } + return copy; +} + + +void FGFrameAnatomy::clearData() +{ + m_FrameLaterality = LATERALITY_UNDEFINED; + m_Anatomy.clearData(); +} + + +OFCondition FGFrameAnatomy::check() const +{ + if (!isLateralityValid(m_FrameLaterality)) + { + DCMFG_ERROR("Frame Laterality invalid"); + return FG_EC_InvalidData; + } + return OFconst_cast(GeneralAnatomyMacro*, &m_Anatomy)->check(); +} + + +int FGFrameAnatomy::compare(const FGBase& rhs) const +{ + int result = FGBase::compare(rhs); + if (result != 0) + return result; + + const FGFrameAnatomy* myRhs = OFstatic_cast(const FGFrameAnatomy*, &rhs); + + // Compare all elements + if (m_FrameLaterality != myRhs->m_FrameLaterality) + return 1; + + return m_Anatomy.compare(myRhs->m_Anatomy); +} + + +/// Read from Frame Content Sequence +OFCondition FGFrameAnatomy::read(DcmItem& item) +{ + clearData(); + + OFCondition result; + DcmItem* seqItem = NULL; + result = getItemFromFGSequence(item, DCM_FrameAnatomySequence, 0, seqItem); + if (result.bad()) + return result; + + DcmCodeString elem(DCM_FrameLaterality); + DcmIODUtil::getAndCheckElementFromDataset(*seqItem, elem, "1", "1", "FrameAnatomyMacro"); + OFString val; + elem.getOFStringArray(val); + m_FrameLaterality = str2Laterality(val); + + m_Anatomy.read(*seqItem); + + return EC_Normal; +} + + +OFCondition FGFrameAnatomy::write(DcmItem& item) +{ + OFCondition result = check(); + if (result.good()) + { + DcmItem* seqItem = NULL; + OFCondition result = createNewFGSequence(item, DCM_FrameAnatomySequence, 0, seqItem); + if (result.good()) + { + OFString lat = laterality2Str(m_FrameLaterality); + result = seqItem->putAndInsertOFStringArray(DCM_FrameLaterality, lat); + if (result.good()) + { + result = m_Anatomy.write(*seqItem); + } + } + } + + return result; +} + + +OFCondition FGFrameAnatomy::getLaterality(FGFrameAnatomy::LATERALITY& value) +{ + value = m_FrameLaterality; + return EC_Normal; +} + + +GeneralAnatomyMacro& FGFrameAnatomy::getAnatomy() +{ + return m_Anatomy; +} + + +OFCondition FGFrameAnatomy::setLaterality(const FGFrameAnatomy::LATERALITY& value) +{ + if (isLateralityValid(value)) + { + m_FrameLaterality = value; + return EC_Normal; + } + else + { + return FG_EC_InvalidData; + } +} + + +OFString FGFrameAnatomy::laterality2Str(const FGFrameAnatomy::LATERALITY lat) +{ + switch(lat) + { + case LATERALITY_INVALID: return "Invalid"; + case LATERALITY_L: return "L"; + case LATERALITY_R: return "R"; + case LATERALITY_BOTH: return "B"; + case LATERALITY_UNDEFINED: return "Undefined"; + case LATERALITY_UNPAIRED: return "U"; + default: return "Invalid"; + } +} + + +FGFrameAnatomy::LATERALITY FGFrameAnatomy::str2Laterality(const OFString& lat) +{ + if (lat == "L") + return LATERALITY_L; + if (lat == "R") + return LATERALITY_R; + if (lat == "U") + return LATERALITY_UNPAIRED; + if (lat == "B") + return LATERALITY_BOTH; + + if (lat.empty()) + return LATERALITY_UNDEFINED; + + return LATERALITY_INVALID; + +} + + +OFBool FGFrameAnatomy::isLateralityValid(const FGFrameAnatomy::LATERALITY lat) +{ + if ( (lat == LATERALITY_L) || (lat == LATERALITY_R) || (lat == LATERALITY_BOTH) || + (lat == LATERALITY_UNPAIRED) ) + return OFTrue; + else + return OFFalse; +} + diff --git a/dcmfg/libsrc/fgframevoilut.cc b/dcmfg/libsrc/fgframevoilut.cc index 3b220122..2b04ac09 100644 --- a/dcmfg/libsrc/fgframevoilut.cc +++ b/dcmfg/libsrc/fgframevoilut.cc @@ -67,7 +67,7 @@ void FGFrameVOILUT::clearData() OFCondition FGFrameVOILUT::check() const { - // TODO + // For now attribute-based checks in read() and write() are sufficient return EC_Normal; } diff --git a/dcmfg/libsrc/fgidentpixeltransform.cc b/dcmfg/libsrc/fgidentpixeltransform.cc new file mode 100644 index 00000000..ef5f6d42 --- /dev/null +++ b/dcmfg/libsrc/fgidentpixeltransform.cc @@ -0,0 +1,229 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Identity Pixel Value Transformation + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmfg/fgidentpixeltransform.h" + +FGIdentityPixelValueTransformation::FGIdentityPixelValueTransformation() +: FGBase(DcmFGTypes::EFG_UNDEFINED) +, m_RescaleIntercept(DCM_RescaleIntercept) +, m_RescaleSlope(DCM_RescaleSlope) +, m_RescaleType(DCM_RescaleType) +{ + m_RescaleIntercept.putOFStringArray("0"); + m_RescaleSlope.putOFStringArray("1"); + m_RescaleType.putOFStringArray("US"); +} + + +FGIdentityPixelValueTransformation::~FGIdentityPixelValueTransformation() +{ + +} + + +OFCondition FGIdentityPixelValueTransformation::check() const +{ + Float64 rs, ri; + rs = ri = 0; + OFString rt; + OFBool ok = OFTrue; + if (OFconst_cast(DcmDecimalString*, &m_RescaleIntercept)->getFloat64(ri).good()) + { + if (ri != 0) + { + DCMFG_ERROR("Rescale Intercept in Identity Pixel Value Transformation FG must be 0 but is set to " << ri); + ok = OFFalse; + } + } + else + { + DCMFG_ERROR("Invalid or no value for Rescale Intercept in Identity Pixel Value Transformation FG (0 is the only valid value"); + ok = OFFalse; + } + + if (OFconst_cast(DcmDecimalString*, &m_RescaleSlope)->getFloat64(rs).good()) + { + if (rs != 1) + { + DCMFG_ERROR("Rescale Slope in Identity Pixel Value Transformation FG must be 1 but is set to " << rs); + ok = OFFalse; + } + } + else + { + DCMFG_ERROR("Invalid or no value for Rescale Slope in Identity Pixel Value Transformation FG (1 is the only valid value"); + ok = OFFalse; + } + + if (OFconst_cast(DcmLongString*, &m_RescaleType)->getOFStringArray(rt).good()) + { + if (rt != "US") + { + DCMFG_ERROR("Rescale Type in Identity Pixel Value Transformation FG must be \"US\" but is set to " << rt); + ok = OFFalse; + } + } + else + { + DCMFG_ERROR("Invalid or no value for Rescale Type in Identity Pixel Value Transformation FG (\"US\" is the only valid value"); + ok = OFFalse; + } + if (ok) + { + return EC_Normal; + } + else + { + return FG_EC_InvalidData; + } +} + + +void FGIdentityPixelValueTransformation::clearData() +{ + m_RescaleIntercept.clear(); + m_RescaleSlope.clear(); + m_RescaleType.clear(); +} + + +FGBase* FGIdentityPixelValueTransformation::clone() const +{ + if(FGIdentityPixelValueTransformation* copy = new FGIdentityPixelValueTransformation) + { + copy->m_RescaleIntercept = m_RescaleIntercept; + copy->m_RescaleSlope = m_RescaleSlope; + copy->m_RescaleType = m_RescaleType; + return copy; + } + return OFnullptr; +} + + +OFCondition FGIdentityPixelValueTransformation::read(DcmItem& item) +{ + clearData(); + + DcmItem* seqItem; + OFCondition result; + + seqItem = OFnullptr; + result = getItemFromFGSequence(item, DCM_PixelValueTransformationSequence, 0, seqItem); + if(result.bad()) + return result; + DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleIntercept, "1", "1", "Identity Pixel Value Transformation"); + DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleSlope, "1", "1", "Identity Pixel Value Transformation"); + DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleType, "1", "1", "Identity Pixel Value Transformation"); + + return EC_Normal; +} + + +OFCondition FGIdentityPixelValueTransformation::write(DcmItem& item) +{ + DcmItem* seqItem; + DCMFG_DEBUG("Identity Pixel Value Transformation Macro: Fixing values for Rescale Slope, Intercept and Type to enumerated values '1', '0' and 'US'"); + m_RescaleSlope.putOFStringArray("1"); + m_RescaleIntercept.putOFStringArray("0"); + m_RescaleType.putOFStringArray("US"); + + seqItem = OFnullptr; + OFCondition result = createNewFGSequence(item, DCM_PixelValueTransformationSequence, 0, seqItem); + if(result.bad()) + return result; + DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleIntercept, "1", "1", "Identity Pixel Value Transformation"); + DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleSlope, "1", "1", "Identity Pixel Value Transformation"); + DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleType, "1", "1", "Identity Pixel Value Transformation"); + + return result; +} + + +int FGIdentityPixelValueTransformation::compare(const FGBase& rhs) const +{ + int result = FGBase::compare(rhs); + if(result == 0) + { + const FGIdentityPixelValueTransformation* myRhs = OFstatic_cast(const FGIdentityPixelValueTransformation*, &rhs); + + // Compare all elements + result = m_RescaleIntercept.compare(myRhs->m_RescaleIntercept); + result = m_RescaleSlope.compare(myRhs->m_RescaleSlope); + result = m_RescaleType.compare(myRhs->m_RescaleType); + } + + return result; +} + + +OFCondition FGIdentityPixelValueTransformation::getRescaleIntercept(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromElement(m_RescaleIntercept, value, pos); +} + + +OFCondition FGIdentityPixelValueTransformation::getRescaleSlope(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromElement(m_RescaleSlope, value, pos); +} + + +OFCondition FGIdentityPixelValueTransformation::getRescaleType(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromElement(m_RescaleType, value, pos); +} + + +OFCondition FGIdentityPixelValueTransformation::setRescaleIntercept(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_RescaleIntercept.putString(value.c_str()); + return result; +} + + +OFCondition FGIdentityPixelValueTransformation::setRescaleSlope(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_RescaleSlope.putString(value.c_str()); + return result; +} + + +OFCondition FGIdentityPixelValueTransformation::setRescaleType(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_RescaleType.putString(value.c_str()); + return result; +} + diff --git a/dcmfg/libsrc/fgimagedatatype.cc b/dcmfg/libsrc/fgimagedatatype.cc index dc71962a..af6ea142 100644 --- a/dcmfg/libsrc/fgimagedatatype.cc +++ b/dcmfg/libsrc/fgimagedatatype.cc @@ -74,7 +74,7 @@ void FGImageDataType::clearData() OFCondition FGImageDataType::check() const { - // TODO + // For now, checks in read() and write() are sufficient return EC_Normal; } @@ -228,6 +228,19 @@ OFCondition FGImageDataType::write(DcmItem& item) { DcmIODUtil::copyElementToDataset(result, *seqItem, m_ZeroVelocityPixelValueUS, "1", "1C", "ImageDataTypeMacro"); } + // Zero Velocity Pixel Value is required in case Data Type is TISSUE_VELOCITY, + // FLOW_VELOCITY or DIRECTION_POWER. + else + { + OFString val; + m_DataType.getOFStringArray(val); + if ( (val == "TISSUE_VELOCITY") || (val == "FLOW_VELOCITY") || (val == "DIRECTION_POWER") ) + { + DCMFG_ERROR("Missing value for Zero Velocity Pixel Value (required if Data Type has" << + "the value TISSUE_VELOCITY, FLOW_VELOCITY or DIRECTION_POWER"); + return FG_EC_InvalidData; + } + } return result; } diff --git a/dcmfg/libsrc/fginterface.cc b/dcmfg/libsrc/fginterface.cc index 08447114..c7c08023 100644 --- a/dcmfg/libsrc/fginterface.cc +++ b/dcmfg/libsrc/fginterface.cc @@ -250,11 +250,11 @@ OFCondition FGInterface::readPerFrameFG(DcmItem& dataset) } /* Read functional groups for each item (one per frame) */ - for (size_t count = 0; count < numFrames; count++) + DcmItem *oneFrameItem = OFstatic_cast(DcmItem*, perFrame->nextInContainer(NULL)); + Uint32 count = 0; + while (oneFrameItem != NULL) { - DcmItem* oneFrameItem = perFrame->getItem(count); OFauto_ptr perFrameGroups(new FunctionalGroups()); - // FunctionalGroups* perFrameGroups = new FunctionalGroups(); if (!oneFrameItem) { DCMFG_ERROR("Could not get functional group item for frame #" << count << " (internal error)"); @@ -278,6 +278,8 @@ OFCondition FGInterface::readPerFrameFG(DcmItem& dataset) DCMFG_ERROR("Could not read functional groups for frame #" << count << ": " << result.text()); } } + oneFrameItem = OFstatic_cast(DcmItem*, perFrame->nextInContainer(oneFrameItem)); + count++; } return EC_Normal; // for now we always return EC_Normal... } @@ -353,7 +355,6 @@ OFCondition FGInterface::write(DcmItem& dataset) } -// TODO: overload (templates?) to return correct derived class type? FGBase* FGInterface::getShared(const DcmFGTypes::E_FGType fgType) { return m_shared.find(fgType); @@ -432,6 +433,25 @@ size_t FGInterface::deletePerFrame(const DcmFGTypes::E_FGType fgType) } +size_t FGInterface::deleteFrame(const Uint32 frameNo) +{ + OFMap::iterator it = m_perFrame.find(frameNo); + if (it != m_perFrame.end()) + { + if ( (*it).second ) + { + FunctionalGroups::iterator fg = (*it).second->begin(); + while (fg != (*it).second->end()) + { + delete (*fg).second; + fg++; + } + } + m_perFrame.erase(it); + } + return OFFalse; +} + FunctionalGroups* FGInterface::getOrCreatePerFrameGroups(const Uint32 frameNo) { @@ -512,7 +532,8 @@ OFCondition FGInterface::writeSharedFG(DcmItem& dataset) } FunctionalGroups::iterator it = m_shared.begin(); - while ( (it != m_shared.end()) && result.good() ) + FunctionalGroups::iterator end = m_shared.end(); + while ( (it != end) && result.good() ) { DCMFG_DEBUG("Writing shared group: " << DcmFGTypes::FGType2OFString((*it).second->getType())); result = (*it).second->write(*sharedFGItem); @@ -623,10 +644,12 @@ OFBool FGInterface::check() // Every frame requires the FrameContent functional group, check "en passant" OFBool foundFrameContent = OFFalse; OFMap::iterator frameFG = m_perFrame.begin(); - while (frameFG != m_perFrame.end()) + OFMap::iterator end = m_perFrame.end(); + while (frameFG != end) { FunctionalGroups::iterator group = (*frameFG).second->begin(); - while (group != (*frameFG).second->end()) + FunctionalGroups::iterator groupEnd = (*frameFG).second->end(); + while (group != groupEnd) { // Check that per-frame group is not shared group at the same time DcmFGTypes::E_FGType groupType = group->second->getType(); @@ -660,7 +683,8 @@ OFBool FGInterface::check() // Check whether shared groups contain FGs that are only permitted per-frame FunctionalGroups::iterator it = m_shared.begin(); - while (it != m_shared.begin()) + FunctionalGroups::iterator end = m_shared.end(); + while (it != end) { if ( (*it).second->getSharedType() == DcmFGTypes::EFGS_ONLYPERFRAME ) { diff --git a/dcmfg/libsrc/fgparametricmapframetype.cc b/dcmfg/libsrc/fgparametricmapframetype.cc new file mode 100644 index 00000000..b60a57e4 --- /dev/null +++ b/dcmfg/libsrc/fgparametricmapframetype.cc @@ -0,0 +1,145 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmfg + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Frame Type + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmfg/fgparametricmapframetype.h" + +FGParametricMapFrameType::FGParametricMapFrameType() +: FGBase(DcmFGTypes::EFG_PARAMETRICMAPFRAMETYPE) +, m_FrameType(DCM_FrameType) +{ + +} + +FGParametricMapFrameType::~FGParametricMapFrameType() +{ + +} + +void FGParametricMapFrameType::clearData() +{ + m_FrameType.clear(); +} + +FGBase* FGParametricMapFrameType::clone() const +{ + if(FGParametricMapFrameType* copy = new FGParametricMapFrameType) + { + copy->m_FrameType = m_FrameType; + return copy; + } + return OFnullptr; +} + +OFCondition FGParametricMapFrameType::read(DcmItem& item) +{ + clearData(); + + DcmItem* seqItem; + OFCondition result; + + seqItem = OFnullptr; + result = getItemFromFGSequence(item, DCM_ParametricMapFrameTypeSequence, 0, seqItem); + if(result.bad()) + return result; + DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_FrameType, "4", "1", "Parametric Map Frame Type"); + + return EC_Normal; +} + + +OFCondition FGParametricMapFrameType::write(DcmItem& item) +{ + OFCondition result = check(); + if (result.good()) + { + DcmItem* seqItem; + seqItem = OFnullptr; + result = createNewFGSequence(item, DCM_ParametricMapFrameTypeSequence, 0, seqItem); + if(result.good()) + { + DcmIODUtil::copyElementToDataset(result, *seqItem, m_FrameType, "4", "1", "Parametric Map Frame Type"); + } + } + return result; +} + + +int FGParametricMapFrameType::compare(const FGBase& rhs) const +{ + int result = FGBase::compare(rhs); + if(result == 0) + { + const FGParametricMapFrameType* myRhs = OFstatic_cast(const FGParametricMapFrameType*, &rhs); + + // Compare all elements + result = m_FrameType.compare(myRhs->m_FrameType); + } + + return result; +} + + +OFCondition FGParametricMapFrameType::check() const +{ + DcmCodeString myFrameType = m_FrameType; + OFCondition result = myFrameType.checkValue("4"); + if (result.good()) + { + OFString val; + myFrameType.getOFString(val, 0); + if (val == "DERIVED") + { + val.clear(); + myFrameType.getOFString(val, 1); + if (val == "PRIMARY") + { + val.clear(); + myFrameType.getOFString(val, 1); + return EC_Normal; + } + else + DCMFG_ERROR("Frame Type' 2nd value must be \"PRIMARY\" but is \"" << val << "\""); + } + else + DCMFG_ERROR("Frame Type 1st value must be \"DERIVED\" but is \"" << val << "\""); + } + return FG_EC_InvalidData; +} + + +OFCondition FGParametricMapFrameType::getFrameType(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromElement(m_FrameType, value, pos); +} + + +OFCondition FGParametricMapFrameType::setFrameType(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "4") : EC_Normal; + if (result.good()) + result = m_FrameType.putString(value.c_str()); + return result; +} diff --git a/dcmfg/libsrc/fgpixmsr.cc b/dcmfg/libsrc/fgpixmsr.cc index 9fa1eec9..24bb4ddf 100644 --- a/dcmfg/libsrc/fgpixmsr.cc +++ b/dcmfg/libsrc/fgpixmsr.cc @@ -64,7 +64,7 @@ void FGPixelMeasures::clearData() OFCondition FGPixelMeasures::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgplanor.cc b/dcmfg/libsrc/fgplanor.cc index b46599d5..49265b57 100644 --- a/dcmfg/libsrc/fgplanor.cc +++ b/dcmfg/libsrc/fgplanor.cc @@ -42,7 +42,7 @@ void FGPlaneOrientationPatient::clearData() OFCondition FGPlaneOrientationPatient::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgplanorvol.cc b/dcmfg/libsrc/fgplanorvol.cc index d5c038f0..eccea15b 100644 --- a/dcmfg/libsrc/fgplanorvol.cc +++ b/dcmfg/libsrc/fgplanorvol.cc @@ -60,7 +60,7 @@ void FGPlaneOrientationVolume::clearData() OFCondition FGPlaneOrientationVolume::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgplanpo.cc b/dcmfg/libsrc/fgplanpo.cc index 6fce31fb..44fe2080 100644 --- a/dcmfg/libsrc/fgplanpo.cc +++ b/dcmfg/libsrc/fgplanpo.cc @@ -71,7 +71,7 @@ void FGPlanePosPatient::clearData() OFCondition FGPlanePosPatient::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgplanposvol.cc b/dcmfg/libsrc/fgplanposvol.cc index 00eaf464..4a88836a 100644 --- a/dcmfg/libsrc/fgplanposvol.cc +++ b/dcmfg/libsrc/fgplanposvol.cc @@ -58,7 +58,7 @@ void FGPlanePositionVolume::clearData() OFCondition FGPlanePositionVolume::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgrealworldvaluemapping.cc b/dcmfg/libsrc/fgrealworldvaluemapping.cc index a2e595aa..08ba72eb 100644 --- a/dcmfg/libsrc/fgrealworldvaluemapping.cc +++ b/dcmfg/libsrc/fgrealworldvaluemapping.cc @@ -64,7 +64,7 @@ void FGRealWorldValueMapping::clearData() OFCondition FGRealWorldValueMapping::check() const { - // TODO + // More checks checks for 1C conditions could be added return EC_Normal; } @@ -122,7 +122,8 @@ OFVector< FGRealWorldValueMapping::RWVMItem* >& FGRealWorldValueMapping::getReal FGRealWorldValueMapping::RWVMItem::RWVMItem(IODComponent* parent) : IODComponent(parent), - m_MeasurementUnitsCode() + m_MeasurementUnitsCode(), + m_QuantityDefinitionSequence() { resetRules(); } @@ -132,33 +133,43 @@ FGRealWorldValueMapping::RWVMItem::RWVMItem(OFshared_ptr< DcmItem > item, OFshared_ptr< IODRules > rules, IODComponent* parent) : IODComponent(item, rules, parent), - m_MeasurementUnitsCode() + m_MeasurementUnitsCode(), + m_QuantityDefinitionSequence() { resetRules(); } -FGRealWorldValueMapping::RWVMItem* FGRealWorldValueMapping::RWVMItem::clone() +FGRealWorldValueMapping::RWVMItem::RWVMItem(const FGRealWorldValueMapping::RWVMItem& rhs) +: IODComponent(rhs) { - FGRealWorldValueMapping::RWVMItem* mapping = new FGRealWorldValueMapping::RWVMItem(*this); - if (mapping) + m_MeasurementUnitsCode = rhs.m_MeasurementUnitsCode; + OFVector::const_iterator it = rhs.m_QuantityDefinitionSequence.begin(); + while (it != rhs.m_QuantityDefinitionSequence.end()) { - // We do not have a copy constructor or clone function on IODComponent - OFString code, meaning, scheme, version; - m_MeasurementUnitsCode.getCodeValue(code); - m_MeasurementUnitsCode.getCodeMeaning(meaning); - m_MeasurementUnitsCode.getCodingSchemeDesignator(scheme); - m_MeasurementUnitsCode.getCodingSchemeVersion(version); - mapping->m_MeasurementUnitsCode.set(code, scheme, meaning, version, OFFalse /* do not check */); + ContentItemMacro* macro = new ContentItemMacro(**it); + if (macro == NULL) + { + DCMFG_ERROR("Out of memory in copy constructor of FGRealWorldValueMapping::RWVMItem::RWVMItem"); + return; + } + m_QuantityDefinitionSequence.push_back(macro); + it++; } - return mapping; +} + + + +FGRealWorldValueMapping::RWVMItem* FGRealWorldValueMapping::RWVMItem::clone() +{ + return new FGRealWorldValueMapping::RWVMItem(*this); } FGRealWorldValueMapping::RWVMItem::~RWVMItem() { - // nothing to do + DcmIODUtil::freeContainer(m_QuantityDefinitionSequence); } @@ -173,24 +184,29 @@ int FGRealWorldValueMapping::RWVMItem::compare(const IODComponent& rhs) const return IODComponent::compare(rhs); } + void FGRealWorldValueMapping::RWVMItem::resetRules() { // parameters are tag, VM, type. Overwrite old rules if any. - m_Rules->addRule(new IODRule(DCM_RealWorldValueFirstValueMapped, "1","1",getName(), DcmIODTypes::IE_INSTANCE), OFTrue); - m_Rules->addRule(new IODRule(DCM_RealWorldValueLastValueMapped, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); + m_Rules->addRule(new IODRule(DCM_RealWorldValueFirstValueMapped, "1","1C",getName(), DcmIODTypes::IE_INSTANCE), OFTrue); + m_Rules->addRule(new IODRule(DCM_RealWorldValueLastValueMapped, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); + m_Rules->addRule(new IODRule(DCM_DoubleFloatRealWorldValueFirstValueMapped, "1","1C",getName(), DcmIODTypes::IE_INSTANCE), OFTrue); + m_Rules->addRule(new IODRule(DCM_DoubleFloatRealWorldValueLastValueMapped, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_RealWorldValueIntercept, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_RealWorldValueSlope, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_RealWorldValueLUTData, "1-n","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_LUTExplanation, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_LUTLabel, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); m_Rules->addRule(new IODRule(DCM_MeasurementUnitsCodeSequence, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); - //m_Rules->addRule(new IODRule(DCM_QuantityDefinitionSequence, "1","3", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); + m_Rules->addRule(new IODRule(DCM_QuantityDefinitionSequence, "1-n","3", getName(), DcmIODTypes::IE_INSTANCE), OFTrue); } + OFCondition FGRealWorldValueMapping::RWVMItem::read(DcmItem& source, const OFBool clearOldData) { DcmIODUtil::readSingleItem(source, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCode, "1", m_ModuleName); + DcmIODUtil::readSubSequence(source, DCM_QuantityDefinitionSequence, m_QuantityDefinitionSequence, m_Rules->getByTag(DCM_QuantityDefinitionSequence)); return IODComponent::read(source, clearOldData); } @@ -199,6 +215,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::write(DcmItem& destination) { OFCondition result; DcmIODUtil::writeSingleItem(result, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCode, *m_Item, "1", m_ModuleName); + DcmIODUtil::writeSubSequence(result, DCM_QuantityDefinitionSequence, m_QuantityDefinitionSequence, *m_Item, m_Rules->getByTag(DCM_QuantityDefinitionSequence)); if (result.good()) result = IODComponent::write(destination); return result; } @@ -212,12 +229,26 @@ OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueFirstValueMapped OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueLastValueMapped(Sint32& value, - const unsigned long pos) const + const unsigned long pos) const { return getUSorSS(*m_Item, DCM_RealWorldValueLastValueMapped, pos, value); } +OFCondition FGRealWorldValueMapping::RWVMItem::getDoubleFloatRealWorldValueFirstValueMapped(Float64& value, + const unsigned long pos) const +{ + return (*m_Item).findAndGetFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value, pos); +} + + +OFCondition FGRealWorldValueMapping::RWVMItem::getDoubleFloatRealWorldValueLastValueMapped(Float64& value, + const unsigned long pos) const +{ + return (*m_Item).findAndGetFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value, pos); +} + + OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueLUTData(OFVector< Float64 >& values) const { DcmElement* elem = NULL; @@ -263,7 +294,13 @@ CodeSequenceMacro& FGRealWorldValueMapping::RWVMItem::getMeasurementUnitsCode() } -OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueFirstValueMappedUnsigned(const Uint16& value, +OFVector & FGRealWorldValueMapping::RWVMItem::getEntireQuantityDefinitionSequence() +{ + return m_QuantityDefinitionSequence; +} + + +OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueFirstValueMappedUnsigned(const Uint16 value, const OFBool checkValue) { (void)checkValue; @@ -299,7 +336,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedS } -OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedUnsigned(const Uint16& value, +OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedUnsigned(const Uint16 value, const OFBool checkValue) { (void)checkValue; @@ -311,7 +348,23 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedU } -OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const Float64& value, +OFCondition FGRealWorldValueMapping::RWVMItem::setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, + const OFBool checkValue) +{ + (void)checkValue; + return (*m_Item).putAndInsertFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value); +} + + +OFCondition FGRealWorldValueMapping::RWVMItem::setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, + const OFBool checkValue) +{ + (void)checkValue; + return (*m_Item).putAndInsertFloat64(DCM_DoubleFloatRealWorldValueLastValueMapped, value); +} + + +OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const Float64 value, const OFBool checkValue) { (void)checkValue; @@ -319,7 +372,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const } -OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueSlope(const Float64& value, +OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueSlope(const Float64 value, const OFBool checkValue) { (void)checkValue; diff --git a/dcmfg/libsrc/fgseg.cc b/dcmfg/libsrc/fgseg.cc index 4e28d64b..72cfa404 100644 --- a/dcmfg/libsrc/fgseg.cc +++ b/dcmfg/libsrc/fgseg.cc @@ -57,7 +57,7 @@ void FGSegmentation::clearData() OFCondition FGSegmentation::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmfg/libsrc/fgtypes.cc b/dcmfg/libsrc/fgtypes.cc index eecd622a..fc5ca7c9 100644 --- a/dcmfg/libsrc/fgtypes.cc +++ b/dcmfg/libsrc/fgtypes.cc @@ -93,6 +93,8 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType) case EFG_IRRADIATIONEVENTIDENT: return "Irradiation Event Identification Functional Group Macro"; break; /// Radiopharmaceutical Usage case EFG_RADIOPHARAMAUSAGE: return "Radiopharmaceutical Usage Functional Group Macro"; break; + /// Parametric Map Frame Type + case EFG_PARAMETRICMAPFRAMETYPE: return "Parametric Map Frame Type Functional Group Macro"; break; /// Patient Physiological State case EFG_PATIENTPHYSIOSTATE: return "Patient Physiological State Functional Group Macro"; break; /// Plane Position (Volume) @@ -101,6 +103,8 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType) case EFG_PLANEORIENTVOLUME: return "Plane Orientation (Volume) Functional Group Macro"; break; /// Temporal Position Macro case EFG_TEMPORALPOSITION: return "Temporal Position Functional Group Macro"; break; + /// Identity Pixel Value Transformation + case EFG_IDENTITYPIXELVALUETRANSFORMATION: return "Identity Pixel Value Transformation"; break; /// Image Data Type case EFG_IMAGEDATATYPE: return "Image Data Type Functional Group Macro"; break; /// Unassigned Shared Converted Attributes Macro @@ -116,7 +120,7 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType) DcmFGTypes::E_FGType DcmFGTypes::tagKey2FGType(const DcmTagKey& key) { - // TODO: Use neat value to enum trick from Alexandrescu in order to have switch statement instead? + // Note: Use neat value to enum trick from Alexandrescu in order to have switch statement instead? if (key == DCM_PixelMeasuresSequence) return EFG_PIXELMEASURES; else if (key == DCM_FrameContentSequence) @@ -155,12 +159,16 @@ DcmFGTypes::E_FGType DcmFGTypes::tagKey2FGType(const DcmTagKey& key) return EFG_RADIOPHARAMAUSAGE; else if (key == DCM_PatientPhysiologicalStateSequence) return EFG_PATIENTPHYSIOSTATE; + else if (key == DCM_ParametricMapFrameTypeSequence) + return EFG_PARAMETRICMAPFRAMETYPE; else if (key == DCM_PlanePositionVolumeSequence) return EFG_PLANEPOSITIONVOLUME; else if (key == DCM_PlaneOrientationVolumeSequence) return EFG_PLANEORIENTVOLUME; else if (key == DCM_TemporalPositionSequence) return EFG_TEMPORALPOSITION; + else if (key == DCM_PixelValueTransformationSequence) + return EFG_IDENTITYPIXELVALUETRANSFORMATION; else if (key == DCM_ImageDataTypeSequence) return EFG_IMAGEDATATYPE; else if (key == DCM_UnassignedSharedConvertedAttributesSequence) diff --git a/dcmfg/libsrc/fgusimagedescription.cc b/dcmfg/libsrc/fgusimagedescription.cc index e5ffa4e6..439e3395 100644 --- a/dcmfg/libsrc/fgusimagedescription.cc +++ b/dcmfg/libsrc/fgusimagedescription.cc @@ -64,7 +64,7 @@ void FGUSImageDescription::clearData() OFCondition FGUSImageDescription::check() const { - // TODO + // Checks in read() and write() are sufficient for now return EC_Normal; } diff --git a/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h b/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h index ba3e71e5..cf4a6116 100644 --- a/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h +++ b/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h @@ -348,7 +348,7 @@ class DiMonoOutputPixelTemplate if (dlut != NULL) // perform display transformation { DCMIMGLE_TRACE("monochrome rendering: VOI LUT #1 - UNTESTED"); - if (low > high) // invers + if (low > high) // inverse value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, plut->getAbsMaxRange() - plut->getValue(value2) - 1))); else // normal value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, plut->getValue(value2)))); @@ -361,7 +361,7 @@ class DiMonoOutputPixelTemplate if (dlut != NULL) // perform display transformation { DCMIMGLE_TRACE("monochrome rendering: VOI LUT #3 - UNTESTED"); - if (low > high) // invers + if (low > high) // inverse value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, vlut->getAbsMaxRange() - minvalue - 1))); else // normal value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, minvalue))); diff --git a/dcmimgle/libsrc/dimoimg.cc b/dcmimgle/libsrc/dimoimg.cc index bfb8e1fe..0db68be5 100644 --- a/dcmimgle/libsrc/dimoimg.cc +++ b/dcmimgle/libsrc/dimoimg.cc @@ -1901,7 +1901,7 @@ DiImage *DiMonoImage::createOutputImage(const unsigned long frame, if ((OutputData != NULL) && (OutputData->getData() != NULL)) { - DiImage *image = new DiMono2Image(this, OutputData, frame, bits, OutputData->getItemSize() * 8); + DiImage *image = new DiMono2Image(this, OutputData, frame, bits, OFstatic_cast(int, OutputData->getItemSize() * 8)); if (image != NULL) OutputData->removeDataReference(); // output data is now handled by new mono image return image; diff --git a/dcmiod/include/dcmtk/dcmiod/iodcommn.h b/dcmiod/include/dcmtk/dcmiod/iodcommn.h index d4cd8721..19d5f379 100644 --- a/dcmiod/include/dcmtk/dcmiod/iodcommn.h +++ b/dcmiod/include/dcmtk/dcmiod/iodcommn.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, Open Connections GmbH + * Copyright (C) 2015-2016, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -48,6 +48,11 @@ public: */ DcmIODCommon(); + /** Copy Constructor + * @param rhs The object to copy from + */ + DcmIODCommon(const DcmIODCommon& rhs); + /** Get rules handled by this IOD * @return The rules */ @@ -177,6 +182,46 @@ public: OFBool readFoR = OFFalse, OFBool readSeries = OFFalse); + /** Import common module attributes from DICOM file but only read Patient, Study, + * Series and/or Frame of Reference level portions. The current content + * is not deleted before reading. If the log stream is set and valid the + * reason for any error might be obtained from the error/warning output. + * This function is deprecated and might be removed in later versions of + * DCMTK. Use the import() call offering the same parameters and + * functionality, instead. + * @param filename The filename to read from. + * @param usePatient If OFTrue, Patient level information is imported + * @param useStudy If OFTrue, Study level information is imported + * @param useSeries If OFTrue, Series level information is imported + * @param useFoR If OFTrue, Frame of Reference information is imported + * @return EC_Normal if reading was successful (i.e.\ if any information could + * be read), otherwise an error is returned + */ + OFCondition importPatientStudyFoR(const OFString& filename, + const OFBool usePatient, + const OFBool useStudy, + const OFBool useSeries, + const OFBool useFoR = OFFalse); + + /** Import common module attributes from DICOM file but only read Patient, Study, + * Series and/or Frame of Reference level portions. The current content + * is not deleted before reading. If the log stream is set and valid the + * reason for any error might be obtained from the error/warning output. + * @param filename The filename to read from + * @param usePatient If OFTrue, Patient level information is imported + * @param useStudy If OFTrue, Study level information is imported + * @param useSeries If OFTrue, Series level information is imported + * @param useFoR If OFTrue, Frame of Reference information is imported + * @return EC_Normal if reading was successful (i.e.\ if any information could + * be read), otherwise an error is returned + */ + virtual OFCondition import(const OFString& filename, + const OFBool usePatient, + const OFBool useStudy, + const OFBool useSeries, + const OFBool useFoR = OFFalse); + + /** Write the attributes managed by this class to DICOM dataset. * @param dataset Reference to DICOM dataset to which the current document * should be written. The dataset is not cleared @@ -188,6 +233,10 @@ public: private: + /** Copy assignment disabled + */ + DcmIODCommon& operator=(const DcmIODCommon&); + /// The data hold by this class (shared with modules below) OFshared_ptr m_Item; diff --git a/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h b/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h new file mode 100644 index 00000000..8646e96f --- /dev/null +++ b/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h @@ -0,0 +1,478 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Content Item Macro + * + */ + +#ifndef IODCONTENTITEMMACRO_H +#define IODCONTENTITEMMACRO_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofmem.h" +#include "dcmtk/dcmiod/iodrules.h" +#include "dcmtk/dcmiod/modbase.h" +#include "dcmtk/dcmiod/iodmacro.h" +#include "dcmtk/dcmiod/iodtypes.h" + +/** Class representing the Content Item Macro: + * + * ValueType: (CS, 1, 1) + * ConceptNameCodeSequence: (SQ, 1, 1) + * DateTime: (DT, 1, 1C) + * Date: (DA, 1, 1C) + * Time: (TM, 1, 1C) + * PersonName: (PN, 1, 1C) + * UID: (UI, 1, 1C) + * TextValue: (UT, 1, 1C) + * ConceptCodeSequence: (SQ, 1, 1C) + * NumericValue: (DS, 1-n, 1C) + * FloatingPointValue: (FD, 1-n, 1C) + * RationalNumeratorValue: (SL, 1-n, 1C) + * RationalDenominatorValue: (UL, 1-n, 1C) + * MeasurementUnitsCodeSequence: (SQ, 1, 1C) + * ReferencedSOPSequence: (SQ, 1, 1C) + */ +class DCMTK_DCMIOD_EXPORT ContentItemMacro : public IODComponent +{ +public: + + enum ValueType + { + // Value is empty and not provided + VT_EMPTY, + // Value is provided but not known to the implementation + VT_UNKNOWN, + VT_DATE, + VT_TIME, + VT_DATETIME, + VT_PNAME, + VT_UIDREF, + VT_TEXT, + VT_CODE, + VT_NUMERIC, + VT_COMPOSITE, + VT_IMAGE + }; + + /** Class representing an item within the Content Item Macro's Referenced + * SOP Sequence + */ + class DCMTK_DCMIOD_EXPORT ReferencedSOPSequenceItem : public IODComponent + { + public: + + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + * @param parent The parent of the IOD component (NULL if none or unknown) + */ + ReferencedSOPSequenceItem(OFshared_ptr item, + OFshared_ptr rules, + IODComponent* parent = NULL); + + /** Constructor + * @param parent The parent of the IOD component (NULL if none or unknown) + */ + ReferencedSOPSequenceItem(IODComponent* parent = NULL); + + /** Copy Constructor, performs deep copy + * @param rhs The parent of the IOD component (NULL if none or unknown) + */ + ReferencedSOPSequenceItem(const ReferencedSOPSequenceItem& rhs); + + /** Virtual Destructor + */ + virtual ~ReferencedSOPSequenceItem(); + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of macro + * @return Name of the component ("ReferencedSOPSequenceItem") + */ + virtual OFString getName() const; + + /** Get SOPInstanceReferenceMacro + * @return a reference to the included SOPInstanceReferenceMacro + */ + virtual SOPInstanceReferenceMacro& getSOPInstanceReferenceMacro(); + + /** Get ReferencedFrameNumber + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getReferencedFrameNumber(OFString &value, + const signed long pos = 0) const; + + /** Get ReferencedSegmentNumber + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getReferencedSegmentNumber(Uint16 &value, + const signed long pos = 0) const; + + /** Set ReferencedFrameNumber + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (IS) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setReferencedFrameNumber(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set ReferencedSegmentNumber + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (US) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setReferencedSegmentNumber(const Uint16 value, + const OFBool checkValue = OFTrue); + + protected: + + /// The name of this item ("ReferencedSOPSequenceItem") + static const OFString m_ComponentName; + + /// SOP Instance Reference Macro + SOPInstanceReferenceMacro m_SOPInstanceReferenceMacro; + }; + + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + ContentItemMacro(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + ContentItemMacro(); + + /** Destructor + */ + virtual ~ContentItemMacro(); + + ContentItemMacro(const ContentItemMacro& rhs); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module ("ContentItemMacro") + * @return Name of the module ("ContentItemMacro") + */ + virtual OFString getName() const; + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Get ValueType + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getValueType(OFString &value, + const signed long pos = 0) const; + + /** Get ValueType + * @param value Reference to variable in which the value should be stored + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getValueType(ValueType &value) const; + + /** Get reference to the ConceptNameCodeSequence + * @return a reference to the ConceptNameCodeSequence + */ + virtual CodeSequenceMacro* getConceptNameCodeSequence(); + + /** Get a reference to the entire ConceptNameCodeSequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire ConceptNameCodeSequence + */ + virtual OFVector& getEntireConceptNameCodeSequence(); + + /** Get DateTime + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDateTime(OFString &value, + const signed long pos = 0) const; + + /** Get Date + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDate(OFString &value, + const signed long pos = 0) const; + + /** Get Time + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getTime(OFString &value, + const signed long pos = 0) const; + + /** Get PersonName + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPersonName(OFString &value, + const signed long pos = 0) const; + + /** Get UID + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getUID(OFString &value, + const signed long pos = 0) const; + + /** Get TextValue + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getTextValue(OFString &value, + const signed long pos = 0) const; + + /** Get reference to the ConceptCodeSequence + * @return a reference to the ConceptCodeSequence + */ + virtual CodeSequenceMacro* getConceptCodeSequence(); + + /** Get a reference to the entire ConceptCodeSequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire ConceptCodeSequence + */ + virtual OFVector& getEntireConceptCodeSequence(); + + /** Get NumericValue + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getNumericValue(OFString &value, + const signed long pos = 0) const; + + /** Get FloatingPointValue + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFloatingPointValue(Float64 &value, + const signed long pos = 0) const; + + /** Get RationalNumeratorValue + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRationalNumeratorValue(Sint32 &value, + const signed long pos = 0) const; + + /** Get RationalDenominatorValue + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRationalDenominatorValue(Uint32 &value, + const signed long pos = 0) const; + + /** Get reference to the MeasurementUnitsCodeSequence + * @return a reference to the MeasurementUnitsCodeSequence + */ + virtual CodeSequenceMacro* getMeasurementUnitsCodeSequence(); + + /** Get a reference to the entire MeasurementUnitsCodeSequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire MeasurementUnitsCodeSequence + */ + virtual OFVector& getEntireMeasurementUnitsCodeSequence(); + + /** Get reference to the ReferencedSOPSequence + * @return a reference to the ReferencedSOPSequence + */ + virtual ReferencedSOPSequenceItem* getReferencedSOPSequence(); + + /** Get a reference to the entire ReferencedSOPSequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire ReferencedSOPSequence + */ + virtual OFVector& getEntireReferencedSOPSequence(); + + /** Set ValueType + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setValueType(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set ValueType + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value'. Does nothing, here for consistency with + * other set() functions. + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setValueType(const ValueType value, + const OFBool checkValue = OFTrue); + + /** Set DateTime + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDateTime(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Date + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDate(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Time + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (TM) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setTime(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set PersonName + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (PN) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPersonName(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set UID + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setUID(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set TextValue + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setTextValue(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set NumericValue + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DS) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setNumericValue(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set FloatingPointValue + * @param value Value to be set (single value only) or "" for no value + * @param pos Index of the value to be set (starting from 0) + * @param checkValue Check 'value' for conformance with VR (FD) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFloatingPointValue(const Float64 value, + const unsigned long pos = 0, + const OFBool checkValue = OFTrue); + + /** Set RationalNumeratorValue + * @param value Value to be set (single value only) or "" for no value + * @param pos Index of the value to be set (starting from 0) + * @param checkValue Check 'value' for conformance with VR (SL) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRationalNumeratorValue(const Sint32 value, + const unsigned long pos = 0, + const OFBool checkValue = OFTrue); + + /** Set RationalDenominatorValue + * @param value Value to be set (single value only) or "" for no value + * @param pos Index of the value to be set (starting from 0) + * @param checkValue Check 'value' for conformance with VR (UL) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRationalDenominatorValue(const Uint32 value, + const unsigned long pos = 0, + const OFBool checkValue = OFTrue); + + virtual OFString toString(); + +protected: + + /// The name of this module ("ContentItemMacro") + static const OFString m_ModuleName; + + /// ConceptNameCodeSequence + OFVector m_ConceptNameCodeSequence; + + /// ConceptCodeSequence + OFVector m_ConceptCodeSequence; + + /// MeasurementUnitsCodeSequence + OFVector m_MeasurementUnitsCodeSequence; + + /// ReferencedSOPSequence + OFVector m_ReferencedSOPSequence; +}; + +#endif // IODCONTENTITEMMACRO_H diff --git a/dcmiod/include/dcmtk/dcmiod/iodimage.h b/dcmiod/include/dcmtk/dcmiod/iodimage.h index 6b0ac4e7..7760c4b8 100644 --- a/dcmiod/include/dcmtk/dcmiod/iodimage.h +++ b/dcmiod/include/dcmtk/dcmiod/iodimage.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, Open Connections GmbH + * Copyright (C) 2015-2016, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -23,44 +23,117 @@ #define IODIMAGE_H #include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofutil.h" +#include "dcmtk/ofstd/ofvriant.h" #include "dcmtk/dcmiod/iodcommn.h" #include "dcmtk/dcmiod/modgeneralimage.h" -#include "dcmtk/dcmiod/modimagepixel.h" +#include "dcmtk/dcmiod/modimagepixelvariant.h" + +class IODDoubleFloatingPointImagePixelModule; +class IODFloatingPointImagePixelModule; +template +class IODImagePixelModule; /** Class for managing common image IOD attributes. At the moment support for * the palette-related attributes and the smallest/largest image pixel value * attributes is still missing. Also, pixel data must be handled separately. + * However, pixel-data related attributes are provided by the Image Pixel + * Module, the Floating Point Image Pixel Module or the Double Floating Point + * Image Pixel Module, based on the provided template parameter. * Modules supported on top of DcmIODCommon: General Image Module and * Image Pixel Module. */ -class DCMTK_DCMIOD_EXPORT DcmIODImage : - public DcmIODCommon +#ifdef DCMTK_USE_CXX11_STL +template +struct DcmIODImageHasType +: std::false_type {}; + +template +struct DcmIODImageHasType +: std::true_type {}; + +template +struct DcmIODImageHasType +: DcmIODImageHasType::type {}; + +template +#else +template +#endif +class DcmIODImage : public DcmIODCommon { public: - /** Constructor + /** typedef for old compilers that do not define the type 'DcmIODImage' in + * derived classes. */ - DcmIODImage(); + typedef DcmIODImage IODImage; - /** Get General Image Module - * @return Reference to General Image Module + /** A good comment would be nice, but I have nothing in mind */ - IODGeneralImageModule& getGeneralImage(); +#ifdef DCMTK_USE_CXX11_STL + using IODImagePixelModuleType = IODImagePixelVariant; +#else + typedef IODImagePixelVariant IODImagePixelModuleType; +#endif - /** Get Image Pixel Module - * @return Reference to Image Pixel Module + /** Constructor, creates new DcmIODImage instance with integer-based pixel data. */ - IODImagePixelModule& getImagePixel(); + DcmIODImage() + : DcmIODCommon() + , m_GeneralImage(getData(), getRules()) + , m_ImagePixel() + { + + } + + /** Constructor, constructs new DcmIODImage instance with integer, float or + * double based Image Pixel Module (i. e. Image Pixel Module, Floating Point + * Image Pixel Module or the Double Floating Point Image Pixel Module), based + * on the provided Image Pixel module type. + */ + template + DcmIODImage(OFin_place_type_t(ImagePixel)) + : DcmIODCommon() + , m_GeneralImage(getData(), getRules()) + , m_ImagePixel(ImagePixel(getData(), getRules())) + { + + } /** Virtual Destructor */ - virtual ~DcmIODImage(); + virtual ~DcmIODImage() + { + + } + + /** Get General Image Module + * @return Reference to General Image Module + */ + IODGeneralImageModule& getGeneralImage() + { + return m_GeneralImage; + } + + /** Get Image Pixel Module (variant) + * @return Reference to Image Pixel Module + */ + IODImagePixelModuleType& getImagePixel() + { + return m_ImagePixel; + } /** Clear (removes) all attributes handled by the modules of this IOD. * IOD Rules are not reset. */ - virtual void clearData(); + virtual void clearData() + { + DcmIODCommon::clearData(); + m_GeneralImage.clearData(); + m_ImagePixel.clearData(); + } /** Read common image module attributes (all those handled by this class) * from given item. Reads attributes from base class DcmIODCommon before. @@ -71,25 +144,169 @@ public: * should be read * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition read(DcmItem &dataset); + virtual OFCondition read(DcmItem &dataset) + { + // re-initialize object + clearData(); + + // read from base classes + DcmIODCommon::read(dataset); + m_GeneralImage.read(dataset, OFTrue /* clear old data */); + + return readFloatingPointDoubleImagePixel(dataset); + } /** Write current common image module's attributes to DICOM dataset. Also * writes attributes of base class DcmIODCommon afterwards. - * @param dataset Reference to DICOM dataset to which the current document - * should be written. The dataset is not cleared before writing + * @param dataset Reference to DICOM dataset to which the current data + * should be written. The dataset is not cleared before writing * to it! * @return EC_Normal if successful, an error code otherwise */ - virtual OFCondition write(DcmItem &dataset); + virtual OFCondition write(DcmItem &dataset) + { + OFCondition result = EC_Normal; + + // Write base class attributes to dataset + result = DcmIODCommon::write(dataset); + + // Write extra modules to dataset + if (result.good()) + result = m_GeneralImage.write(dataset); + if (result.good()) + result = m_ImagePixel.write(dataset); + + return result; + } private: + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type::value != -1), + OFCondition + >::type +#endif + readFloatingPointDoubleImagePixel(DcmItem& dataset) + { + if (dataset.tagExists(DCM_DoubleFloatPixelData)) + return OFget(&(m_ImagePixel = T(getData(),getRules())))->read(dataset); + return readFloatingPointImagePixel(dataset); + } + + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type::value == -1), + OFCondition + >::type +#endif + readFloatingPointDoubleImagePixel(DcmItem& dataset) + { + return readFloatingPointImagePixel(dataset); + } + + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type::value != -1), + OFCondition + >::type +#endif + readFloatingPointImagePixel(DcmItem& dataset) + { + if (dataset.tagExists(DCM_FloatPixelData)) + return OFget(&(m_ImagePixel = T(getData(),getRules())))->read(dataset); + return readIntegerImagePixel(dataset); + } + + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type::value == -1), + OFCondition + >::type +#endif + readFloatingPointImagePixel(DcmItem& dataset) + { + return readIntegerImagePixel(dataset); + } + + OFCondition readIntegerImagePixel(DcmItem& dataset) + { + Uint16 allocated, representation; + if + ( + dataset.tagExists(DCM_PixelData) && + dataset.findAndGetUint16(DCM_BitsAllocated, allocated).good() && + dataset.findAndGetUint16(DCM_PixelRepresentation, representation).good() + ) + switch ((allocated > 8 ? 2 : 0) | (representation ? 1 : 0)) + { + case 0: + return readImagePixel(dataset); + case 1: + return readImagePixel(dataset); + case 2: + return readImagePixel(dataset); + case 3: + return readImagePixel(dataset); + default: + break; + } + return IOD_EC_InvalidPixelData; + } + + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value != -1), + OFCondition + >::type +#endif + readImagePixel(DcmItem& dataset) + { + return OFget >(&(m_ImagePixel = IODImagePixelModule(getData(),getRules())))->read(dataset); + } + + template +#ifdef DCMTK_USE_CXX11_STL + typename std::enable_if::value,OFCondition>::type +#else + OFTypename OFenable_if + < + (OFvariadic_find_type,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value == -1), + OFCondition + >::type +#endif + readImagePixel(DcmItem& dataset) + { + // Avoid compiler warning about unused parameter + OFstatic_cast(void, dataset); + return IOD_EC_InvalidPixelData; + } + /// General Image Module IODGeneralImageModule m_GeneralImage; /// Image Pixel Module - IODImagePixelModule m_ImagePixel; - + IODImagePixelModuleType m_ImagePixel; }; #endif // IODIMAGE_H diff --git a/dcmiod/include/dcmtk/dcmiod/iodmacro.h b/dcmiod/include/dcmtk/dcmiod/iodmacro.h index 709c23df..9d4f5d22 100644 --- a/dcmiod/include/dcmtk/dcmiod/iodmacro.h +++ b/dcmiod/include/dcmtk/dcmiod/iodmacro.h @@ -57,7 +57,6 @@ public: */ CodeSequenceMacro(const CodeSequenceMacro& rhs); - /** Convenience constructor to set initial values * @param item The item to be used for data storage. If NULL, the * class creates an empty data container. @@ -136,6 +135,14 @@ public: */ virtual OFCondition getCodeMeaning(OFString &value, const signed long pos = 0); + + /** Returns whether code is empty, i.e. no component of the Code Sequence Macro + * is set. This can be used in order to find out whether someone actually + * wanted to fill in a valid code as opposed of leaving it unset. + * @return OFTrue if no component of this class is set, OFFalse otherwise. + */ + virtual OFBool empty(); + /** Set Code Value * @param value The value to set * @param checkValue If OFTrue, VM and VR of value are checked @@ -183,6 +190,8 @@ public: const OFString &schemeVersion = "", const OFBool checkValue = OFTrue); + virtual OFString toString(); + }; @@ -211,13 +220,13 @@ public: /** Constructor * @param modifierType Denotes type of Modifier Code Sequence (i.e. 1, 1C, - * 2, 2C or 3), default is 3 + * 2, 2C or 3) * @param modifierVM Denotes how many items are allowed in the Modifier Code * Sequence * @param modifierSeq Tag of the sequence that holds the modifier codes. * The default is the Modifier Code Sequence. */ - CodeWithModifiers(const OFString& modifierType = "3", + CodeWithModifiers(const OFString& modifierType, const OFString& modifierVM = "1-n", const DcmTagKey& modifierSeq = DCM_ModifierCodeSequence); @@ -302,6 +311,9 @@ public: private: + /// Private undefined default constructor + CodeWithModifiers(); + /// Items of Modifier Code Sequence OFVector m_Modifiers; @@ -316,6 +328,7 @@ private: }; + /** Class implementing the SOP Instance Reference Macro */ class DCMTK_DCMIOD_EXPORT SOPInstanceReferenceMacro : public IODComponent @@ -555,8 +568,6 @@ private: /** Class representing the Image SOP Instance Reference Macro - * TODO: Change implementation to use IODComponent class inherited anyway - * from SOPInstanceReferenceMacro */ class DCMTK_DCMIOD_EXPORT ImageSOPInstanceReferenceMacro : public SOPInstanceReferenceMacro { @@ -690,146 +701,9 @@ private: }; -/** Class representing an item within the the Primary Anatomic Structure Macro - */ -class DCMTK_DCMIOD_EXPORT PrimaryAnatomicStructureMacroItem -{ - -public: - - /** Constructor - */ - PrimaryAnatomicStructureMacroItem(); - - /** Copy constructor - * @param rhs The item to copy from - */ - PrimaryAnatomicStructureMacroItem(const PrimaryAnatomicStructureMacroItem& rhs); - - /** Virtual destructor - */ - virtual ~PrimaryAnatomicStructureMacroItem(); - - /** Clear (removes) all attributes handled by the modules of this component. - */ - virtual void clearData(); - - /** Check whether this component's data satisfies the underlying - * rules - * @param quiet If OFTrue, not error / warning messages will be produced. - * Only the returned error code will indicate error or OK. Per - * default, logging output is produced. - * @result EC_Normal if rules are satisfied, error otherwise - */ - virtual OFCondition check(const OFBool quiet = OFFalse); - - /** Return the Anatomic Structure Code - * @return Reference to the anatomic structure code - */ - virtual CodeSequenceMacro& getAnatomicStructure(); - - /** Return the Anatomic Structure Modifier Codes - * @return The Anatomic Structure Modifier Codes - */ - virtual OFVector& getAnatomicStructureModifier(); - - /** Reads Primary Anatomic Region Sequence Item from given item - * @param source The item to read from - * @param clearOldData If OFTrue, old data is cleared first, otherwise it is - * kept where not overwritten - * @return EC_Normal if successful, error otherwise - */ - virtual OFCondition read(DcmItem& source, - const OFBool clearOldData = OFTrue); - - /** Write Anatomic Region Sequence Item to given item - * @param item The item to write to - * @return EC_Normal if successful, error otherwise - */ - virtual OFCondition write(DcmItem& item); - - /** Assignment operator (performs deep copy) - * @param rhs The item to copy from - * @return result - */ - PrimaryAnatomicStructureMacroItem& operator=(const PrimaryAnatomicStructureMacroItem &rhs); - -private: - - /// Primary Anatomic Structure Sequence Item - CodeSequenceMacro m_AnatomicStructure; - - /// Primary Anatomic Structure Structure Modifier Sequence (SQ, 1-n, 3) - OFVector m_AnatomicStructureModifier; - -}; - - /** Class representing the Primary Anatomic Structure Macro */ -class DCMTK_DCMIOD_EXPORT PrimaryAnatomicStructureMacro -{ - -public: - - /** Constructor - */ - PrimaryAnatomicStructureMacro(); - - /** Copy constructor - * @param rhs The macro to copy from - */ - PrimaryAnatomicStructureMacro(const PrimaryAnatomicStructureMacro& rhs); - - /** Virtual destructor - */ - virtual ~PrimaryAnatomicStructureMacro(); - - /** Clear (removes) all attributes handled by the modules of this component. - */ - virtual void clearData(); - - /** Check whether this component's data satisfies the underlying - * rules - * @param quiet If OFTrue, not error / warning messages will be produced. - * Only the returned error code will indicate error or OK. Per - * default, logging output is produced. - * @result EC_Normal if rules are satisfied, error otherwise - */ - virtual OFCondition check(const OFBool quiet = OFFalse); - - /** Return Primary Anatomic Structure items - * @return Reference to items of this macro - */ - virtual OFVector& getPrimaryAnatomicStructure(); - - /** Reads Primary Anatomic Region Sequence (i.e.\ this macro) from given item - * @param source The item to read from - * @param clearOldData If OFTrue, old data is cleared first, otherwise it is - * kept where not overwritten - * @return EC_Normal if reading was fine, error otherwise - */ - virtual OFCondition read(DcmItem& source, - const OFBool clearOldData = OFTrue); - - /** Write Anatomic Region Sequence (i.e.\ this macro) to given item - * @param item The item to write to - * @return EC_Normal if writing was fine, error otherwise - */ - virtual OFCondition write(DcmItem& item); - - /** Assignment operator - * @param rhs The macro to copy from - * @result Reference to "this" object - */ - PrimaryAnatomicStructureMacro& operator=(const PrimaryAnatomicStructureMacro &rhs); - -private: - - /// Primary Anatomic Structure Sequence (SQ, 0-1, 3) - OFVector m_PrimaryAnatomicStructure; -}; - +typedef CodeWithModifiers PrimaryAnatomicStructureMacro; /** Class representing the General Anatomy Mandatory or Optional Macro */ @@ -847,7 +721,7 @@ public: */ GeneralAnatomyMacro(const OFString& type); - /** Copy constructor + /** Copy constructor, creates deep copy. * @param rhs The macro to copy from */ GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs); @@ -907,10 +781,24 @@ public: */ GeneralAnatomyMacro& operator=(const GeneralAnatomyMacro &rhs); + /** Comparison operator that compares the normalized value of this object + * with a given object of the same type, i.e.\ the elements within both + * objects (this and rhs parameter) are compared by value. + * @param rhs the right hand side of the comparison + * @return 0 if the object values are equal. + * -1 if either the value of the first component that does not match + * is lower in the rhs object, or all compared components match + * but the rhs component is shorter. + * 1 if either the value of the first component that does not match + * is greater in the rhs object, or all compared components match + * but the rhs component is longer. + */ + virtual int compare(const GeneralAnatomyMacro& rhs) const; + private: /// Type (1,2,3) of Anatomic Region Sequence. - OFString m_Type; // TODO: Make enum? + OFString m_Type; /// Anatomic Region Sequence (SQ, 1, 1) (Code Sequence Macro within item of /// Anatomic Region Sequence)) @@ -1321,7 +1209,7 @@ private: /** Class representing the HL7 V2 Hierarchic Designator Macro */ -class HL7HierarchicDesignatorMacro : public IODComponent +class DCMTK_DCMIOD_EXPORT HL7HierarchicDesignatorMacro : public IODComponent { public: @@ -1405,7 +1293,7 @@ public: /** Class representing the Mandatory View and Slice Progression Direction Macro */ -class MandatoryViewAndSliceProgressionDirectionMacro : public IODComponent +class DCMTK_DCMIOD_EXPORT MandatoryViewAndSliceProgressionDirectionMacro : public IODComponent { public: diff --git a/dcmiod/include/dcmtk/dcmiod/iodutil.h b/dcmiod/include/dcmtk/dcmiod/iodutil.h index d4f3c393..a51f3179 100644 --- a/dcmiod/include/dcmtk/dcmiod/iodutil.h +++ b/dcmiod/include/dcmtk/dcmiod/iodutil.h @@ -29,6 +29,8 @@ #include "dcmtk/dcmdata/dcsequen.h" #include "dcmtk/dcmdata/dcdatset.h" #include "dcmtk/dcmdata/dcdatutl.h" +#include "dcmtk/ofstd/ofdate.h" +#include "dcmtk/ofstd/oftime.h" #include "dcmtk/dcmiod/ioddef.h" #include "dcmtk/dcmiod/iodrules.h" #include "dcmtk/dcmiod/iodtypes.h" @@ -755,12 +757,16 @@ public: /* If we do not have data, insert empty for type 2 */ else if (type == "2") { - destination.insertEmptyElement(seqKey); + destination.insertEmptyElement(seqKey); } else if (type == "1C") { DCMIOD_TRACE("Skipping type 1C sequence " << seqKey << ": No data or incomplete data available"); } + else if (type == "3") + { + DCMIOD_TRACE("Skipping type 3 sequence " << seqKey << ": No data or incomplete data available"); + } /* Check outcome */ checkSubSequence(result, destination, seqKey, "1", type, module); } @@ -864,6 +870,26 @@ public: } } + + template + static OFCondition setContentDateAndTimeNow(ModuleType& module) + { + OFDate date; + date.setCurrentDate(); + OFString tempstr; + date.getISOFormattedDate(tempstr, OFFalse /* no delimiters */); + OFCondition result = module.setContentDate(tempstr); + if (result.good()) + { + OFTime time; + time.setCurrentTime(); + time.getISOFormattedTime(tempstr, OFTrue /* include seconds */, OFFalse, OFFalse, OFFalse); + result = module.setContentTime(tempstr); + } + return result; + } + + /** Function that takes a string representation of a tag key and * converts it to a tag key instance if possible * @param keyString String of the format "(gggg,eeee)" diff --git a/dcmiod/include/dcmtk/dcmiod/modbase.h b/dcmiod/include/dcmtk/dcmiod/modbase.h index d372a66d..2270c177 100644 --- a/dcmiod/include/dcmtk/dcmiod/modbase.h +++ b/dcmiod/include/dcmtk/dcmiod/modbase.h @@ -66,8 +66,8 @@ public: IODComponent(IODComponent* parent = NULL); /** Assignment operator, copies contained item and rule set from rhs to - * "this" attribute set. Produces clone copy, i.e.\ the contained item - * and the rule set is copied. The parent component is set to NULL. + * "this" attribute set. Performs deep copy, i.e.\ the contained item + * and the rule set are copied. The parent component is set to NULL. * @param rhs The IODComponent to be assigned * @return Reference to this module */ @@ -192,22 +192,28 @@ public: IODRules& rules, DcmItem& destination, const OFString& componentName); + protected: - /// Shared pointer to the data handled by this class. The item may contain - /// more attributes than this class is actually responsible for - OFshared_ptr m_Item; + /// Shared pointer to the data handled by this class. The item may contain + /// more attributes than this class is actually responsible for + OFshared_ptr m_Item; + + /// Rules describing the attributes governed by this class + OFshared_ptr m_Rules; - /// Rules describing the attributes governed by this class - OFshared_ptr m_Rules; + /// The parent component (may be NULL) of this class + IODComponent* m_Parent; - /// The parent component (may be NULL) of this class - IODComponent* m_Parent; }; /** The class IODModule is an IODComponent without parent component since * a module does always belong to the top level dataset. + * Also, different from IODComponents, modules usually share data and + * rules. This is taken into account in the assignment operator and + * copy constructor which only create a shallow copy, i.e. modules + * share the same data and rules afterwards. */ class DCMTK_DCMIOD_EXPORT IODModule : public IODComponent { @@ -229,6 +235,19 @@ public: */ IODModule(); + /** Copy constructor, creates shallow copy + * @param rhs The module to copy from + */ + IODModule(const IODModule& rhs); + + /** Assignment operator, creates shallow copy + * @param rhs The module to copy from + * @return Returns reference to this object + */ + IODModule& operator=(const IODModule& rhs); + + /** Desctructor + */ ~IODModule() {}; }; diff --git a/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h b/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h index 0991f456..cad4ca7f 100644 --- a/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h +++ b/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h @@ -122,6 +122,8 @@ protected: private: + void freeMemory(); + /// Vector with all items of the Referenced Series Sequence OFVector m_ReferenceSeriesItems; diff --git a/dcmiod/include/dcmtk/dcmiod/modenhequipment.h b/dcmiod/include/dcmtk/dcmiod/modenhequipment.h index 78b9f5e0..7721d3c1 100644 --- a/dcmiod/include/dcmtk/dcmiod/modenhequipment.h +++ b/dcmiod/include/dcmtk/dcmiod/modenhequipment.h @@ -40,9 +40,9 @@ class DCMTK_DCMIOD_EXPORT IODEnhGeneralEquipmentModule : public IODModule public: /** Convenient struct containing all information required for setting - * equipment information for use by external code) + * enhanced equipment information (for use by external code) */ - struct EquipmentInfo + struct DCMTK_DCMIOD_EXPORT EquipmentInfo { /** Default Constructor @@ -51,39 +51,52 @@ public: m_Manufacturer(), m_ManufacturerModelName(), m_DeviceSerialNumber(), - m_SoftwareVersions() {}; + m_SoftwareVersions() {} /** Convenience Constructor setting all values * @param manufacturer Manufacturer - * @param modelName Model name + * @param manufacturerModelName Manufacturer's model name * @param deviceSerialNumber Serial number - * *@param softwareVersions Software versions + * @param softwareVersions Software versions */ EquipmentInfo(const OFString& manufacturer, - const OFString& modelName, + const OFString& manufacturerModelName, const OFString& deviceSerialNumber, const OFString& softwareVersions) : m_Manufacturer(manufacturer), - m_ManufacturerModelName(modelName), + m_ManufacturerModelName(manufacturerModelName), m_DeviceSerialNumber(deviceSerialNumber), - m_SoftwareVersions(softwareVersions) {}; + m_SoftwareVersions(softwareVersions) {} - // Manufacturer (VM 1) + /** Perform simple check whether all equipment data is filled in. Does not + * check VR or VM (will be checked in write() routine, though) + * @return OFTrue if data is complete, OFFalse otherwise + */ + OFBool isDataComplete() const + { + if (m_Manufacturer.empty() || m_ManufacturerModelName.empty() || m_DeviceSerialNumber.empty() || m_SoftwareVersions.empty()) + { + return OFFalse; + } + return OFTrue; + } + + /// Manufacturer (VM 1) OFString m_Manufacturer; - // Manufacturer's Model Name (VM 1) + /// Manufacturer's Model Name (VM 1) OFString m_ManufacturerModelName; - // Device Serial Number (VM 1) + /// Device Serial Number (VM 1) OFString m_DeviceSerialNumber; - // Software Version(s) (VM 1-n) + /// Software Version(s) (VM 1-n) OFString m_SoftwareVersions; }; /** Constructor - * @param item The item to be used for data storage. If NULL, the - * class creates an empty data container. + * @param item The item to be used for data storage. If NULL, the class + * creates an empty data container. * @param rules The rule set for this class. If NULL, the class creates * one from scratch and adds its values. */ @@ -101,9 +114,9 @@ public: static OFCondition create(const EquipmentInfo& info, IODEnhGeneralEquipmentModule* equipment); - /** Resets rules to their original values. - */ - virtual void resetRules(); + /** Resets rules to their original values. + */ + virtual void resetRules(); /** Get name of module * @return Name of the module ("EnhancedEquipmentModule") @@ -174,6 +187,10 @@ public: virtual OFCondition setSoftwareVersions(const OFString &value, const OFBool checkValue = OFTrue); + /** Set all equipment information at once + * @param info The equipment information to be set. + * @return EC_Normal if values could be set, error otherwise + */ virtual OFCondition set(const EquipmentInfo& info); private: diff --git a/dcmiod/include/dcmtk/dcmiod/modequipment.h b/dcmiod/include/dcmtk/dcmiod/modequipment.h index 8f6c6949..f974c838 100644 --- a/dcmiod/include/dcmtk/dcmiod/modequipment.h +++ b/dcmiod/include/dcmtk/dcmiod/modequipment.h @@ -43,30 +43,50 @@ class DCMTK_DCMIOD_EXPORT IODGeneralEquipmentModule : public IODModule public: - /** Convenient struct containing all information required for setting - * equipment information for use by external code) + /** Convenient struct containing commonly used equipment information + * (for use by external code) */ - struct EquipmentInfo + struct DCMTK_DCMIOD_EXPORT EquipmentInfo { - // Manufacturer (VM 1) + + /** Default Constructor + */ + EquipmentInfo() {} + + /** Convenience Constructor setting commonly used values + * @param manufacturer Manufacturer + * @param manufacturerModelName Manufacturer's model name + * @param deviceSerialNumber Serial number + * @param softwareVersions Software versions + */ + EquipmentInfo(const OFString& manufacturer, + const OFString& manufacturerModelName, + const OFString& deviceSerialNumber, + const OFString& softwareVersions) : + m_Manufacturer(manufacturer), + m_ManufacturerModelName(manufacturerModelName), + m_DeviceSerialNumber(deviceSerialNumber), + m_SoftwareVersions(softwareVersions) {} + + /// Manufacturer (VM 1) OFString m_Manufacturer; - // Manufacturer's Model Name (VM 1) + /// Manufacturer's Model Name (VM 1) OFString m_ManufacturerModelName; - // Device Serial Number (VM 1) + /// Device Serial Number (VM 1) OFString m_DeviceSerialNumber; - // Software Version(s) (VM 1-n) + /// Software Version(s) (VM 1-n) OFString m_SoftwareVersions; }; /** Constructor - * @param item The item to be used for data storage. If NULL, the - * class creates an empty data container. - * @param rules The rule set for this class. If NULL, the class creates - * one from scratch and adds its values. - */ + * @param item The item to be used for data storage. If NULL, the class + * creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ IODGeneralEquipmentModule(OFshared_ptr item, OFshared_ptr rules); @@ -84,7 +104,6 @@ public: /** Get name of module * @return Name of the module ("GeneralEquipmentModule") - * depending on configuration) */ virtual OFString getName() const; @@ -225,7 +244,7 @@ public: private: - /// Name of the modue ("GeneralEquipmentModule") + /// Name of the module ("GeneralEquipmentModule") OFString m_ModuleName; }; diff --git a/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h b/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h new file mode 100644 index 00000000..05072287 --- /dev/null +++ b/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h @@ -0,0 +1,246 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Michael Onken + * + * Purpose: Floating Point and Double Floating Point Image Pixel Module + * + */ + +#ifndef MODFLOATINGPOINTIMAGEPIXEL_H +#define MODFLOATINGPOINTIMAGEPIXEL_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmiod/modimagepixelbase.h" +#include "dcmtk/dcmdata/dcdeftag.h" + +/** Class representing Floating Point Image Pixel Module: + * + * Samples Per Pixel: (US, 1, 1) + * Photometric Interpretation (CS, 1, 1) + * Rows: (US, 1, 1) + * Columns: (US, 1, 1) + * Bits Allocated: (US, 1 1) + * Pixel Aspect Ratio: (IS, 2, 1C) + * Float Pixel Padding Value: (FL, 1, 3) + * Float Pixel Padding Range Limit: (FL, 1, 1C) + */ +class DCMTK_DCMIOD_EXPORT IODFloatingPointImagePixelModule : public IODImagePixelBase +{ + +public: + + /// Data type of pixels + typedef Float32 value_type; + + static const DcmTagKey pixel_data_tag; + + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + IODFloatingPointImagePixelModule(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + IODFloatingPointImagePixelModule(); + + /** Destructor + */ + virtual ~IODFloatingPointImagePixelModule(); + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module + * @return Name of the module ("FloatingPointImagePixelModule") + */ + virtual OFString getName() const; + + /** Get pixel data type, always returns DataType::FLOAT for this class. + * @return The data type of the pixel data + */ + virtual DataType getDataType() const; + + /** Get Float Pixel Padding Value + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFloatPixelPaddingValue(Float32& value, + const signed long pos = 0); + + /** Get Float Pixel Padding Range Limit + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFloatPixelPaddingRangeLimit(Float32& value, + const signed long pos = 0); + + /** Set Float Pixel Pixel Padding Value + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value' for conformance with VR (FL) and consistency + * with other attributes if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFloatPixelPaddingValue(const Float32 value, + const OFBool checkValue = OFTrue); + + /** Set Float Pixel Padding Range Limit + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value' for conformance with VR (FL) and consistency + * with other attributes if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFloatPixelPaddingRangeLimit(const Float32 value, + const OFBool checkValue = OFTrue); + +private: + + /// This module's name ("FloatingPointImagePixelModule") + static const OFString m_ModuleName; + +}; + + +/** Class representing Double Floating Point Image Pixel Module: + * + * Samples Per Pixel: (US, 1, 1) + * Photometric Interpretation (CS, 1, 1) + * Rows: (US, 1, 1) + * Columns: (US, 1, 1) + * Bits Allocated: (US, 1 1) + * Pixel Aspect Ratio: (IS, 2, 1C) + * Double Float Pixel Padding Value: (FD, 1, 3) + * Double Float Pixel Padding Range Limit: (FD, 1, 1C) + */ +class DCMTK_DCMIOD_EXPORT IODDoubleFloatingPointImagePixelModule: public IODImagePixelBase +{ + +public: + + /// Data type of pixels + typedef Float64 value_type; + + static const DcmTagKey pixel_data_tag; + + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + IODDoubleFloatingPointImagePixelModule(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + IODDoubleFloatingPointImagePixelModule(); + + /** Destructor + */ + virtual ~IODDoubleFloatingPointImagePixelModule(); + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module + * @return Name of the module ("DoubleFloatingPointImagePixelModule") + */ + virtual OFString getName() const; + + /** Get pixel data type, always returns DataType::DOUBLE for this class. + * @return The data type of the pixel data + */ + virtual DataType getDataType() const; + + /** Get Double Float Pixel Padding Value + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDoubleFloatPixelPaddingValue(Float64& value, + const signed long pos = 0); + + /** Get Double Float Pixel Padding Range Limit + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDoubleFloatPixelPaddingRangeLimit(Float64& value, + const signed long pos = 0); + + /** Set Double Float Pixel Pixel Padding Value + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value' for conformance with VR (FD) and consistency + * with other attributes if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDoubleFloatPixelPaddingValue(const Float64 value, + const OFBool checkValue = OFTrue); + + /** Set Double Float Pixel Padding Range Limit + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value' for conformance with VR (FD) and consistency + * with other attributes if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDoubleFloatPixelPaddingRangeLimit(const Float64 value, + const OFBool checkValue = OFTrue); + +private: + + /// This module's name ("DoubleFloatingPointImagePixelModule") + static const OFString m_ModuleName; + +}; + +#endif // MODFLOATINGPOINTIMAGEPIXEL_H diff --git a/dcmiod/include/dcmtk/dcmiod/modfor.h b/dcmiod/include/dcmtk/dcmiod/modfor.h index 7da8fc42..76d7519f 100644 --- a/dcmiod/include/dcmtk/dcmiod/modfor.h +++ b/dcmiod/include/dcmtk/dcmiod/modfor.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, Open Connections GmbH + * Copyright (C) 2015-2016, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -97,6 +97,13 @@ public: virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool checkValue = OFTrue); + /** Make sure that the module contains a Frame of Reference Instance UID, i.e.\ + * a new one is created if empty. An invalid UID is corrected if desired. + * @param correctInvalid Correct invalid UID if OFTrue, otherwise do nothing + * + */ + void ensureFrameOfReferenceUID(const OFBool correctInvalid = OFFalse); + private: diff --git a/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h b/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h index 5fa81148..70d289cd 100644 --- a/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h +++ b/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h @@ -36,7 +36,7 @@ * Study ID: (SH, 1, 2) * Accession Number: (SH, 1, 2) * Study Description: (LO, 1, 3) - * Issuer of Accession Number Sequence: (SQ, 3, 1) + * Issuer of Accession Number Sequence: (SQ, 1, 3) * Procedure Code Sequence: (SQ, 1-n, 3) * Reason for Performed Procedure Code Sequence: (SQ, 1-n, 3) */ diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixel.h b/dcmiod/include/dcmtk/dcmiod/modimagepixel.h index d76be12f..281edf59 100644 --- a/dcmiod/include/dcmtk/dcmiod/modimagepixel.h +++ b/dcmiod/include/dcmtk/dcmiod/modimagepixel.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, Open Connections GmbH + * Copyright (C) 2015-2016, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -23,9 +23,10 @@ #define MODIMAGEPIXEL_H #include "dcmtk/config/osconfig.h" -#include "dcmtk/dcmiod/modbase.h" +#include "dcmtk/dcmiod/modimagepixelbase.h" +#include "dcmtk/dcmdata/dcdeftag.h" -/** Class representing the General Image Module: +/** Class representing the Image Pixel Module: * * Samples Per Pixel: (US, 1, 1) * Photometric Interpretation (CS, 1, 1) @@ -40,11 +41,17 @@ * Pixel Aspect Ratio: (IS, 2, 1C) * ICC Profile: (OB, 1, 3) */ -class DCMTK_DCMIOD_EXPORT IODImagePixelModule : public IODModule +template +class DCMTK_DCMIOD_EXPORT IODImagePixelModule : public IODImagePixelBase { public: + /// Data type of pixels + typedef T value_type; + + static const DcmTagKey pixel_data_tag; + /** Constructor * @param item The item to be used for data storage. If NULL, the * class creates an empty data container. @@ -62,6 +69,21 @@ public: */ virtual ~IODImagePixelModule(); + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + /** Resets rules to their original values */ virtual void resetRules(); @@ -71,44 +93,10 @@ public: */ virtual OFString getName() const; - /** Get Samples per Pixel - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise + /** Get pixel data type, always returns DataType::INTEGER for this class. + * @return The data type of the pixel data */ - virtual OFCondition getSamplesPerPixel(Uint16 &value, - const signed long pos = 0); - - /** Get Photometric Interpretation - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getPhotometricInterpretation(OFString&value, - const signed long pos = 0); - - /** Get Rows - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getRows(Uint16& value, - const signed long pos = 0); - - /** Get Columns - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getColumns(Uint16& value, - const signed long pos = 0); - /** Get Bits Allocated - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getBitsAllocated(Uint16& value, - const signed long pos = 0); + virtual DataType getDataType() const; /** Get Bits Stored * @param value Reference to variable in which the value should be stored @@ -142,21 +130,13 @@ public: virtual OFCondition getPlanarConfiguration(Uint16& value, const signed long pos = 0); - /** Get Pixel Aspect Ratio - * @param value Reference to variable in which the value should be stored - * @param pos Index of the value to get (0..vm-1) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getPixelAspectRatio(Uint16& value, - const signed long pos = 0); - /** Get ICC Profile * @param values Reference to variable in which the values should be stored * @return EC_Normal if successful, an error code otherwise */ virtual OFCondition getICCProfile(OFVector& values); - /** set Samples per Pixel + /** Set Samples per Pixel * @param value Reference to variable in which the value should be stored * @param checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled * @return EC_Normal if successful, an error code otherwise @@ -172,23 +152,6 @@ public: virtual OFCondition setPhotometricInterpretation(const OFString& value, const OFBool checkValue = OFTrue); - /** Set Rows - * @param value Reference to variable in which the value should be stored - * @param checkValue Check 'value'. Not evaluated (here for consistency - * with other setter functions). - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition setRows(const Uint16 value, - const OFBool checkValue = OFTrue); - - /** Set Columns - * @param value Reference to variable in which the value should be stored - * @param checkValue Check 'value'. Not evaluated (here for consistency - * with other setter functions). - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition setColumns(const Uint16 value, - const OFBool checkValue = OFTrue); /** Set Bits Allocated * @param value Reference to variable in which the value should be stored * @param checkValue Check 'value'. Not evaluated (here for consistency @@ -234,16 +197,6 @@ public: virtual OFCondition setPlanarConfiguration(const Uint16 value, const OFBool checkValue = OFTrue); - /** Set Pixel Aspect Ratio - * @param verticalPixelSize The vertical pixel size (no unit) - * @param horizontalPixelSize The horizontal pixel size (no unit) - * @param checkValue Check 'value' for conformance with VR (IS) - * @return EC_Normal if successful, an error code otherwise - */ - virtual OFCondition setPixelAspectRatio(const OFString& verticalPixelSize, - const OFString& horizontalPixelSize, - const OFBool checkValue = OFTrue); - /** Set ICC Profile * @param values Reference to variable in which the values should be stored * @param length Length of array provided in values parameter @@ -251,6 +204,7 @@ public: */ virtual OFCondition setICCProfile(const Uint8* values, const size_t length); + private: /// This module's name ("ImagePixelModule") diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h b/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h new file mode 100644 index 00000000..7455e020 --- /dev/null +++ b/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h @@ -0,0 +1,168 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Michael Onken + * + * Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point) + * + */ + +#ifndef MODIMAGEPIXELBASE_H +#define MODIMAGEPIXELBASE_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmiod/modbase.h" + +/** Base class for deriving Image Pixel Module, Floating Point Image Pixel + * Module and Double Floating Point Image Pixel (and maybe more later) + */ +class DCMTK_DCMIOD_EXPORT IODImagePixelBase : public IODModule +{ + +public: + + enum DataType + { + DATA_TYPE_UNKNOWN, + DATA_TYPE_FLOAT, + DATA_TYPE_DOUBLE, + DATA_TYPE_INTEGER + }; + + + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + IODImagePixelBase(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + IODImagePixelBase(); + + /** Destructor + */ + virtual ~IODImagePixelBase(); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module + * @return Name of the module ("ImagePixelModule") + */ + virtual OFString getName() const; + + /** Get pixel data type + * @return The data type of the pixel data + */ + virtual DataType getDataType() const = 0; + + // ------------------------------------------------------------------------- + // Getters for all attribute that appear in all Image Pixel Modules + // ------------------------------------------------------------------------- + + /** Get Samples per Pixel + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSamplesPerPixel(Uint16 &value, + const signed long pos = 0); + + /** Get Photometric Interpretation + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPhotometricInterpretation(OFString&value, + const signed long pos = 0); + + /** Get Rows + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRows(Uint16& value, + const signed long pos = 0); + + /** Get Columns + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getColumns(Uint16& value, + const signed long pos = 0); + + /** Get Bits Allocated + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getBitsAllocated(Uint16& value, + const signed long pos = 0); + + /** Get Pixel Aspect Ratio + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPixelAspectRatio(Uint16& value, + const signed long pos = 0); + + // ------------------------------------------------------------------------- + // Setters for all attribute that appear in all Image Pixel Modules and which + // do not have fixed values in sub classes. + // ------------------------------------------------------------------------- + + /** Set Rows + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value'. Not evaluated (here for consistency + * with other setter functions). + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRows(const Uint16 value, + const OFBool checkValue = OFTrue); + + /** Set Columns + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value'. Not evaluated (here for consistency + * with other setter functions). + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setColumns(const Uint16 value, + const OFBool checkValue = OFTrue); + + /** Set Pixel Aspect Ratio + * @param verticalPixelSize The vertical pixel size (no unit) + * @param horizontalPixelSize The horizontal pixel size (no unit) + * @param checkValue Check 'value' for conformance with VR (IS) + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPixelAspectRatio(const OFString& verticalPixelSize, + const OFString& horizontalPixelSize, + const OFBool checkValue = OFTrue); + +private: + + /// This module's name ("ImagePixelBase") + static const OFString m_ModuleName; + +}; + +#endif // MODIMAGEPIXELBASE_H diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h b/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h new file mode 100644 index 00000000..d6a5ba22 --- /dev/null +++ b/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h @@ -0,0 +1,281 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Michael Onken + * + * Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point) + * + */ + +#ifndef MODIMAGEPIXELVARIANT_H +#define MODIMAGEPIXELVARIANT_H + +#include "dcmtk/config/osconfig.h" + +#include "dcmtk/ofstd/ofvriant.h" +#include "dcmtk/dcmiod/modimagepixelbase.h" + + +/** Visitor for returning base class of given Image Pixel Module + */ +struct IODImagePixelVariantBaseVisitor +{ + + /** Returns NULL since given argument is no pixel module at all + * @return OFnullptr + */ + IODImagePixelBase* operator()( OFmonostate& ) + { + return OFnullptr; + } + + /** Returns the base class pointer of all pixel modules + * @param base IODImagePixelBase pointer to given class instance + * @return OFnullptr + */ + IODImagePixelBase* operator()( IODImagePixelBase& base ) + { + return &base; + } +}; + +/** Class representing different pixel modules from the DICOM standard: + * The class Image Pixel Module, the Floating Point Image Pixel module + * and the Double Floating Point Image Pixel module + */ +#ifdef DCMTK_USE_CXX11_STL +template +class IODImagePixelVariant +: public OFvariant +#else +template +class IODImagePixelVariant +: public OFvariant +#endif +{ + +public: + + /** Constructor + */ + IODImagePixelVariant() + : IODImagePixelVariant::variant() + { + + } + + /** Constructor, constructs pixel module based on given type + */ + template + IODImagePixelVariant(const T& t) + : IODImagePixelVariant::variant(t) + { + + } + + /** Destructor + */ + ~IODImagePixelVariant() + { + + } + + /** Get name of module + * @return Name of the actual module (e.g. "ImagePixelModule") + */ + OFString getName() const + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getName(); + return OFString(); + } + + /** Get pixel data type + * @return The data type of the pixel data + */ + IODImagePixelBase::DataType getDataType() const + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getDataType(); + return IODImagePixelBase::DATA_TYPE_UNKNOWN; + } + + /** Clear data (base class version) + */ + void clearData() + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + pBase->clearData(); + } + + // ------------------------------------------------------------------------- + // Getters for all attribute that appear in all Image Pixel Modules + // ------------------------------------------------------------------------- + + /** Get Samples per Pixel + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getSamplesPerPixel(Uint16 &value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getSamplesPerPixel(value, pos); + return IOD_EC_InvalidPixelData; + } + + /** Get Photometric Interpretation + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getPhotometricInterpretation(OFString&value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getPhotometricInterpretation(value, pos); + return IOD_EC_InvalidPixelData; + } + + /** Get Rows + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getRows(Uint16& value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getRows(value, pos); + return IOD_EC_InvalidPixelData; + } + + /** Get Columns + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getColumns(Uint16& value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getColumns(value, pos); + return IOD_EC_InvalidPixelData; + } + + /** Get Bits Allocated + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getBitsAllocated(Uint16& value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getBitsAllocated(value, pos); + return IOD_EC_InvalidPixelData; + } + + /** Get Pixel Aspect Ratio + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition getPixelAspectRatio(Uint16& value, + const signed long pos = 0) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->getPixelAspectRatio(value, pos); + return IOD_EC_InvalidPixelData; + } + + // ------------------------------------------------------------------------- + // Setters for all attribute that appear in all Image Pixel Modules and which + // do not have fixed values in sub classes. + // ------------------------------------------------------------------------- + + /** Set Rows + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value'. Not evaluated (here for consistency + * with other setter functions). + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition setRows(const Uint16 value, + const OFBool checkValue = OFTrue) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->setRows(value, checkValue); + return IOD_EC_InvalidPixelData; + + } + + /** Set Columns + * @param value Reference to variable in which the value should be stored + * @param checkValue Check 'value'. Not evaluated (here for consistency + * with other setter functions). + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition setColumns(const Uint16 value, + const OFBool checkValue = OFTrue) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->setColumns(value, checkValue); + return IOD_EC_InvalidPixelData; + + } + + /** Set Pixel Aspect Ratio + * @param verticalPixelSize The vertical pixel size (no unit) + * @param horizontalPixelSize The horizontal pixel size (no unit) + * @param checkValue Check 'value' for conformance with VR (IS) + * @return EC_Normal if successful, an error code otherwise + */ + OFCondition setPixelAspectRatio(const OFString& verticalPixelSize, + const OFString& horizontalPixelSize, + const OFBool checkValue = OFTrue) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->setPixelAspectRatio(verticalPixelSize, horizontalPixelSize, checkValue); + return IOD_EC_InvalidPixelData; + + } + + /** Write pixel module base class data to given item + * @param dataset The item to write to (usually dataset level) + * @return EC_Normal if successful, error otherwise + */ + OFCondition write(DcmItem& dataset) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->write(dataset); + return IOD_EC_InvalidPixelData; + + } + + /** Read pixel module base class data from given item + * @param dataset The item to read from (usually dataset level) + * @return EC_Normal if successful, error otherwise + */ + OFCondition read(DcmItem& dataset) + { + if (IODImagePixelBase* pBase = OFvisit(IODImagePixelVariantBaseVisitor(), *this)) + return pBase->read(dataset); + return IOD_EC_InvalidPixelData; + } + +}; + +#endif // MODIMAGEPIXELBASE_H diff --git a/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h b/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h index 1d92731d..83ff45ed 100644 --- a/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h +++ b/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h @@ -261,7 +261,8 @@ public: /** Convenience method to add Dimension Index. * @param dimensionIndexPointer The Dimension Index Pointer attribute * @param dimensionOrganizationUID The Dimension Organization UID of the dimension organization - * the pointer refers to + * the pointer refers to. If UID does not exist yet (in the Dimension + * Organization Sequence, it is created there automatically). * @param functionalGroupPointer The functional group where the pointer attribute can be found * @param dimensionDescriptionLabel The description label of this dimension (optional) * @param dimensionIndexPrivateCreator The private creator of the Dimension Index Pointer diff --git a/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h b/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h index cc782334..e4a21135 100644 --- a/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h +++ b/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h @@ -198,6 +198,29 @@ public: virtual OFCondition setNTPSourceAddress(const OFString &value, const OFBool checkValue = OFTrue); +protected: + + /** Check whether given string is a valid value for attribute + * Acquisition Time Synchronized + * @param value The value to check + * @return OFTrue if value is valid for this attribute, OFFalse otherwise + */ + virtual OFBool isValidAcquisitionTimeSynchronized(const OFString& value); + + /** Check whether given string is a valid value for attribute + * Time Distribution Protocol + * @param value The value to check + * @return OFTrue if value is valid for this attribute, OFFalse otherwise + */ + virtual OFBool isValidTimeDistributionProtocol(const OFString& value); + + /** Check whether given string is a valid value for attribute + * Synchronization Trigger + * @param value The value to check + * @return OFTrue if value is valid for this attribute, OFFalse otherwise + */ + virtual OFBool isValidSynchronizationTrigger(const OFString& value); + private: /// Module name "SynchronizationModule" diff --git a/dcmiod/libsrc/CMakeLists.txt b/dcmiod/libsrc/CMakeLists.txt index 51d62ff4..15a9f580 100644 --- a/dcmiod/libsrc/CMakeLists.txt +++ b/dcmiod/libsrc/CMakeLists.txt @@ -1,9 +1,9 @@ # create library from source files DCMTK_ADD_LIBRARY(dcmiod cielabutil + iodcontentitemmacro iodcommn iodmacro - iodimage iodrules iodreferences iodutil @@ -15,12 +15,14 @@ DCMTK_ADD_LIBRARY(dcmiod modenhusimage modenhusseries modequipment + modfloatingpointimagepixel modfor modgeneralimage modgeneralseries modgeneralstudy modhelp modimagepixel + modimagepixelbase modmultiframefg modmultiframedimension modpatient diff --git a/dcmiod/libsrc/Makefile.dep b/dcmiod/libsrc/Makefile.dep index 21270be8..944fe001 100644 --- a/dcmiod/libsrc/Makefile.dep +++ b/dcmiod/libsrc/Makefile.dep @@ -136,25 +136,21 @@ iodcommn.o: iodcommn.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/iodreferences.h \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h -iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmiod/iodimage.h ../include/dcmtk/dcmiod/iodcommn.h \ - ../include/dcmtk/dcmiod/iodrules.h \ +iodcontentitemmacro.o: iodcontentitemmacro.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ - ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../../ofstd/include/dcmtk/ofstd/ofmap.h \ - ../../ofstd/include/dcmtk/ofstd/ofutil.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ - ../../ofstd/include/dcmtk/ofstd/ofcond.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ - ../include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ ../../oflog/include/dcmtk/oflog/oflog.h \ ../../oflog/include/dcmtk/oflog/logger.h \ ../../oflog/include/dcmtk/oflog/config.h \ @@ -179,39 +175,53 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ - ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/cielabutil.h \ - ../include/dcmtk/dcmiod/modpatient.h \ - ../../ofstd/include/dcmtk/ofstd/ofmem.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ - ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmiod/iodcontentitemmacro.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/dcmiod/modbase.h ../include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ - ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ @@ -219,18 +229,10 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ - ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ @@ -254,22 +256,7 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmiod/modbase.h \ - ../include/dcmtk/dcmiod/modpatientstudy.h \ - ../../ofstd/include/dcmtk/ofstd/ofoption.h \ - ../../ofstd/include/dcmtk/ofstd/ofalign.h \ - ../include/dcmtk/dcmiod/modgeneralstudy.h \ - ../include/dcmtk/dcmiod/iodmacro.h \ - ../include/dcmtk/dcmiod/modequipment.h \ - ../include/dcmtk/dcmiod/modgeneralseries.h \ - ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modsopcommon.h \ - ../include/dcmtk/dcmiod/modcommoninstanceref.h \ - ../include/dcmtk/dcmiod/iodreferences.h \ - ../include/dcmtk/dcmiod/modgeneralimage.h \ - ../include/dcmtk/dcmiod/modimagepixel.h \ - ../include/dcmtk/dcmiod/iodutil.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h iodmacro.o: iodmacro.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/iodmacro.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -453,6 +440,8 @@ iodreferences.o: iodreferences.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ @@ -628,6 +617,8 @@ iodutil.o: iodutil.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ @@ -641,9 +632,7 @@ iodutil.o: iodutil.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h modacquisitioncontext.o: modacquisitioncontext.cc \ ../../config/include/dcmtk/config/osconfig.h \ @@ -832,6 +821,8 @@ modbase.o: modbase.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h modcommoninstanceref.o: modcommoninstanceref.cc \ ../../config/include/dcmtk/config/osconfig.h \ @@ -1029,7 +1020,9 @@ modenhequipment.o: modenhequipment.cc \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modenhusimage.o: modenhusimage.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modenhusimage.h \ @@ -1349,7 +1342,83 @@ modequipment.o: modequipment.cc \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h +modfloatingpointimagepixel.o: modfloatingpointimagepixel.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmiod/modfloatingpointimagepixel.h \ + ../include/dcmtk/dcmiod/modimagepixelbase.h \ + ../include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modfor.o: modfor.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modbase.h \ ../../ofstd/include/dcmtk/ofstd/ofmem.h \ @@ -1420,7 +1489,9 @@ modfor.o: modfor.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modgeneralimage.o: modgeneralimage.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modgeneralimage.h \ @@ -1808,6 +1879,7 @@ modhelp.o: modhelp.cc ../../config/include/dcmtk/config/osconfig.h \ modimagepixel.o: modimagepixel.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modimagepixel.h \ + ../include/dcmtk/dcmiod/modimagepixelbase.h \ ../include/dcmtk/dcmiod/modbase.h \ ../../ofstd/include/dcmtk/ofstd/ofmem.h \ ../../ofstd/include/dcmtk/ofstd/ofutil.h \ @@ -1877,7 +1949,84 @@ modimagepixel.o: modimagepixel.cc \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h +modimagepixelbase.o: modimagepixelbase.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmiod/modimagepixelbase.h \ + ../include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modmultiframedimension.o: modmultiframedimension.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modmultiframedimension.h \ @@ -1954,7 +2103,9 @@ modmultiframedimension.o: modmultiframedimension.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modmultiframefg.o: modmultiframefg.cc \ ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modmultiframefg.h \ @@ -2547,7 +2698,9 @@ modsynchronization.o: modsynchronization.cc \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h modusfor.o: modusfor.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/modusfor.h \ ../../ofstd/include/dcmtk/ofstd/ofoption.h \ @@ -2621,4 +2774,6 @@ modusfor.o: modusfor.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmiod/iodutil.h \ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h diff --git a/dcmiod/libsrc/Makefile.in b/dcmiod/libsrc/Makefile.in index 5cfeb145..64eb2668 100644 --- a/dcmiod/libsrc/Makefile.in +++ b/dcmiod/libsrc/Makefile.in @@ -20,14 +20,13 @@ LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include -I$(dcmdatadir)/incl LOCALDEFS = -objs = cielabutil.o iodcommn.o iodmacro.o iodimage.o iodrules.o iodutil.o \ - iodtypes.o modacquisitioncontext.o modbase.o modcommoninstanceref.o \ +objs = cielabutil.o iodcommn.o iodcontentitemmacro.o iodmacro.o iodreferences.o iodrules.o \ + iodtypes.o iodutil.o modacquisitioncontext.o modbase.o modcommoninstanceref.o \ modenhequipment.o modenhusimage.o modenhusseries.o modequipment.o \ - modfor.o modgeneralimage.o modgeneralseries.o modgeneralstudy.o \ - modhelp.o modimagepixel.o modmultiframefg.o \ - modmultiframedimension.o modpatient.o modpatientstudy.o \ - modsegmentationseries.o modsopcommon.o modsynchronization.o \ - modusfor.o + modfloatingpointimagepixel.o modfor.o modgeneralimage.o modgeneralseries.o \ + modgeneralstudy.o modhelp.o modimagepixelbase.o modimagepixel.o modmultiframedimension.o \ + modmultiframefg.o modpatient.o modpatientstudy.o modsegmentationseries.o modsopcommon.o \ + modsynchronization.o modusfor.o library = libdcmiod.$(LIBEXT) diff --git a/dcmiod/libsrc/iodcommn.cc b/dcmiod/libsrc/iodcommn.cc index 467d91c3..03c7f976 100644 --- a/dcmiod/libsrc/iodcommn.cc +++ b/dcmiod/libsrc/iodcommn.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, Open Connections GmbH + * Copyright (C) 2015-2016, Open Connections GmbH * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation are maintained by @@ -51,6 +51,32 @@ DcmIODCommon::DcmIODCommon() } +DcmIODCommon::DcmIODCommon(const DcmIODCommon& rhs) +: m_Item(rhs.m_Item), + m_Rules(rhs.m_Rules), + m_Patient(m_Item, m_Rules), + m_PatientStudy(m_Item, m_Rules), + m_Study(m_Item, m_Rules), + m_Equipment(m_Item, m_Rules), + m_Series(m_Item, m_Rules), + m_FrameOfReference(m_Item, m_Rules), + m_SOPCommon(m_Item, m_Rules), + m_CommonInstanceReferenceModule(m_Item, m_Rules), + m_Modules() +{ + // Set initial values for a new SOP instance + ensureInstanceUIDs(OFFalse); + m_Modules.push_back(&m_Patient); + m_Modules.push_back(&m_PatientStudy); + m_Modules.push_back(&m_Study); + m_Modules.push_back(&m_Equipment); + m_Modules.push_back(&m_Series); + m_Modules.push_back(&m_FrameOfReference); + m_Modules.push_back(&m_SOPCommon); + m_Modules.push_back(&m_CommonInstanceReferenceModule); +} + + DcmIODCommon::~DcmIODCommon() { } @@ -58,12 +84,13 @@ DcmIODCommon::~DcmIODCommon() void DcmIODCommon::clearData() { - OFVector::iterator it = m_Modules.begin(); - while (it != m_Modules.end()) - { - (*it)->clearData(); - it++; - } + // TODO +// OFVector::iterator it = m_Modules.begin(); +// while (it != m_Modules.end()) +// { +// (*it)->clearData(); +// it++; +// } } @@ -178,6 +205,42 @@ OFCondition DcmIODCommon::import(DcmItem& dataset, } +OFCondition DcmIODCommon::importPatientStudyFoR(const OFString& filename, + const OFBool usePatient, + const OFBool useStudy, + const OFBool useSeries, + const OFBool useFoR) +{ + DCMIOD_WARN("This function is deprecated and will be removed in later versions of DCMTK, please use import()"); + return import(filename, usePatient, useStudy, useSeries, useFoR); +} + + +OFCondition DcmIODCommon::import(const OFString& filename, + const OFBool usePatient, + const OFBool useStudy, + const OFBool useSeries, + const OFBool useFoR) +{ + DcmFileFormat dcmff; + OFCondition result = dcmff.loadFile(filename.c_str()); + if ( result.good() ) + { + DcmDataset *dset = dcmff.getDataset(); + if (dset != NULL) + { + result = import(*dset, usePatient, useStudy, useSeries, useFoR); + } + else + { + DCMIOD_ERROR("Unable to get dataset from file for copying patient, study, series and/or frame of reference information"); + result = EC_IllegalCall; + } + } + return result; +} + + void DcmIODCommon::ensureInstanceUIDs(const OFBool correctInvalid) { m_Study.ensureInstanceUID(correctInvalid); diff --git a/dcmiod/libsrc/iodcontentitemmacro.cc b/dcmiod/libsrc/iodcontentitemmacro.cc new file mode 100644 index 00000000..bc76df8a --- /dev/null +++ b/dcmiod/libsrc/iodcontentitemmacro.cc @@ -0,0 +1,800 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Content Item Macro + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofstream.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcvrcs.h" +#include "dcmtk/dcmdata/dcvrdt.h" +#include "dcmtk/dcmdata/dcvrda.h" +#include "dcmtk/dcmdata/dcvrtm.h" + +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmiod/iodcontentitemmacro.h" + +const OFString ContentItemMacro::ReferencedSOPSequenceItem::m_ComponentName = "ReferencedSOPSequenceItem"; + + +ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(OFshared_ptr item, + OFshared_ptr rules, + IODComponent* parent) +: IODComponent(item, rules, parent) +{ + // reset element rules + resetRules(); +} + + +ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(IODComponent* parent) +: IODComponent(parent) +{ + // reset element rules + resetRules(); +} + + +ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(const ReferencedSOPSequenceItem& rhs) +: IODComponent(rhs) +{ +} + + +ContentItemMacro::ReferencedSOPSequenceItem::~ReferencedSOPSequenceItem() +{ + // nothing to do +} + + +OFString ContentItemMacro::ReferencedSOPSequenceItem::getName() const +{ + return m_ComponentName; +} + + +void ContentItemMacro::ReferencedSOPSequenceItem::resetRules() +{ + // parameters are tag, VM, type. Overwrite old rules if any. + m_Rules->addRule(new IODRule(DCM_ReferencedFrameNumber, "1-n","1C", getName(), DcmIODTypes::IE_UNDEFINED), OFTrue); + m_Rules->addRule(new IODRule(DCM_ReferencedSegmentNumber, "1-n","1C", getName(), DcmIODTypes::IE_UNDEFINED), OFTrue); +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::read( + DcmItem& source, + const OFBool clearOldData) +{ + if (clearOldData) + clearData(); + + IODComponent::read(source, OFFalse /* data already cleared */); + return EC_Normal; +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::write(DcmItem& destination) +{ + OFCondition result = EC_Normal; + + result = IODComponent::write(destination); + + return result; +} + + +SOPInstanceReferenceMacro& ContentItemMacro::ReferencedSOPSequenceItem::getSOPInstanceReferenceMacro() +{ + return m_SOPInstanceReferenceMacro; +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::getReferencedFrameNumber( + OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_ReferencedFrameNumber, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::getReferencedSegmentNumber( + Uint16 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint16(DCM_ReferencedSegmentNumber, value, pos); +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::setReferencedFrameNumber( + const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmIntegerString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_ReferencedFrameNumber, value); + return result; +} + + +OFCondition ContentItemMacro::ReferencedSOPSequenceItem::setReferencedSegmentNumber( + const Uint16 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertUint16(DCM_ReferencedSegmentNumber, value); +} + + +const OFString ContentItemMacro::m_ModuleName = "ContentItemMacro"; + + +ContentItemMacro::ContentItemMacro() +: IODComponent() +{ + resetRules(); +} + + +ContentItemMacro::ContentItemMacro(OFshared_ptr item, + OFshared_ptr rules) +: IODComponent(item, rules) +{ + // reset element rules + resetRules(); +} + + +ContentItemMacro::ContentItemMacro(const ContentItemMacro& rhs) +: IODComponent(rhs) +{ + if (this == &rhs) + return; + + OFVector::const_iterator it = rhs.m_ConceptCodeSequence.begin(); + while (it != rhs.m_ConceptCodeSequence.end()) + { + CodeSequenceMacro* macro = new CodeSequenceMacro(**it); + m_ConceptCodeSequence.push_back(macro); + it++; + } + + it = rhs.m_ConceptNameCodeSequence.begin(); + while (it != rhs.m_ConceptNameCodeSequence.end()) + { + CodeSequenceMacro* macro = new CodeSequenceMacro(**it); + m_ConceptNameCodeSequence.push_back(macro); + it++; + } + + it = rhs.m_MeasurementUnitsCodeSequence.begin(); + while (it != rhs.m_MeasurementUnitsCodeSequence.end()) + { + CodeSequenceMacro* macro = new CodeSequenceMacro(**it); + m_MeasurementUnitsCodeSequence.push_back(macro); + it++; + } + + OFVector::const_iterator m = rhs.m_ReferencedSOPSequence.begin(); + while (m != rhs.m_ReferencedSOPSequence.end()) + { + ReferencedSOPSequenceItem* item = new ReferencedSOPSequenceItem(**m); + m_ReferencedSOPSequence.push_back(item); + m++; + } + +} + + +ContentItemMacro::~ContentItemMacro() +{ + DcmIODUtil::freeContainer(m_ConceptNameCodeSequence); + DcmIODUtil::freeContainer(m_ConceptCodeSequence); + DcmIODUtil::freeContainer(m_MeasurementUnitsCodeSequence); + DcmIODUtil::freeContainer(m_ReferencedSOPSequence); +} + + +OFString ContentItemMacro::getName() const +{ + return m_ModuleName; +} + + +void ContentItemMacro::resetRules() +{ + // parameters are tag, VM, type. Overwrite old rules if any. + m_Rules->addRule(new IODRule(DCM_ValueType, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_ConceptNameCodeSequence, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_DateTime, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_Date, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_Time, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_PersonName, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_UID, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_TextValue, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_ConceptCodeSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_NumericValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_FloatingPointValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_RationalNumeratorValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_RationalDenominatorValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_MeasurementUnitsCodeSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_ReferencedSOPSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); +} + + +OFCondition ContentItemMacro::read(DcmItem& source, + const OFBool clearOldData) +{ + if (clearOldData) + clearData(); + + IODComponent::read(source, OFFalse /* data already cleared */); + DcmIODUtil::readSubSequence(source, DCM_ConceptNameCodeSequence, m_ConceptNameCodeSequence, m_Rules->getByTag(DCM_ConceptNameCodeSequence)); + DcmIODUtil::readSubSequence(source, DCM_ConceptCodeSequence, m_ConceptCodeSequence, m_Rules->getByTag(DCM_ConceptCodeSequence)); + DcmIODUtil::readSubSequence(source, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCodeSequence, m_Rules->getByTag(DCM_MeasurementUnitsCodeSequence)); + DcmIODUtil::readSubSequence(source, DCM_ReferencedSOPSequence, m_ReferencedSOPSequence, m_Rules->getByTag(DCM_ReferencedSOPSequence)); + + return EC_Normal; +} + + +OFCondition ContentItemMacro::write(DcmItem& destination) +{ + OFCondition result = EC_Normal; + + if(CodeSequenceMacro* pConceptNameCodeSequence = getConceptNameCodeSequence()) + DcmIODUtil::writeSingleItem(result, DCM_ConceptNameCodeSequence, *pConceptNameCodeSequence, *m_Item, m_Rules->getByTag(DCM_ConceptNameCodeSequence)); + if(CodeSequenceMacro* pConceptCodeSequence = getConceptCodeSequence()) + DcmIODUtil::writeSingleItem(result, DCM_ConceptCodeSequence, *pConceptCodeSequence, *m_Item, m_Rules->getByTag(DCM_ConceptCodeSequence)); + if(CodeSequenceMacro* pMeasurementUnitsCodeSequence = getMeasurementUnitsCodeSequence()) + DcmIODUtil::writeSingleItem(result, DCM_MeasurementUnitsCodeSequence, *pMeasurementUnitsCodeSequence, *m_Item, m_Rules->getByTag(DCM_MeasurementUnitsCodeSequence)); + if(ReferencedSOPSequenceItem* pReferencedSOPSequence = getReferencedSOPSequence()) + DcmIODUtil::writeSingleItem(result, DCM_ReferencedSOPSequence, *pReferencedSOPSequence, *m_Item, m_Rules->getByTag(DCM_ReferencedSOPSequence)); + + if (result.good()) + { + result = IODComponent::write(destination); + } + + return result; +} + + +OFCondition ContentItemMacro::getValueType(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_ValueType, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getValueType(ValueType& value) const +{ + OFString str; + OFCondition result = DcmIODUtil::getStringValueFromItem(DCM_ValueType, *m_Item, str, 0); + if (result == EC_Normal) + { + if (!str.empty()) + { + if (str == "DATE") + value = VT_DATE; + else if (str == "TIME") + value = VT_TIME; + else if (str == "DATETIME") + value = VT_DATETIME; + else if (str == "PNAME") + value = VT_PNAME; + else if (str == "UIDREF") + value = VT_UIDREF; + else if (str == "TEXT") + value = VT_TEXT; + else if (str == "CODE") + value = VT_CODE; + else if (str == "NUMERIC") + value = VT_NUMERIC; + else if (str == "COMPOSITE") + value = VT_COMPOSITE; + else if (str == "IMAGE") + value = VT_IMAGE; + else + value = VT_UNKNOWN; + } + else + { + value = VT_EMPTY; + } + } + else if (result == EC_TagNotFound) + { + value = VT_EMPTY; + } + else + { + DCMIOD_ERROR("Unexpected error, could not get Value Type: " << result.text()); + value = VT_UNKNOWN; + } + return result; +} + + +CodeSequenceMacro* ContentItemMacro::getConceptNameCodeSequence() +{ + return m_ConceptNameCodeSequence.empty() ? OFnullptr : *m_ConceptNameCodeSequence.begin(); +} + +OFVector& ContentItemMacro::getEntireConceptNameCodeSequence() +{ + return m_ConceptNameCodeSequence; +} + + +OFCondition ContentItemMacro::getDateTime(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_DateTime, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getDate(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_Date, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getTime(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_Time, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getPersonName(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_PersonName, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getUID(OFString &value, + const signed long pos) const +{ + return m_Item->findAndGetOFString(DCM_UID, value, pos); +} + + +OFCondition ContentItemMacro::getTextValue(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_TextValue, *m_Item, value, pos); +} + + +CodeSequenceMacro* ContentItemMacro::getConceptCodeSequence() +{ + return m_ConceptCodeSequence.empty() ? OFnullptr : *m_ConceptCodeSequence.begin(); +} + +OFVector& ContentItemMacro::getEntireConceptCodeSequence() +{ + return m_ConceptCodeSequence; +} + + +OFCondition ContentItemMacro::getNumericValue(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_NumericValue, *m_Item, value, pos); +} + + +OFCondition ContentItemMacro::getFloatingPointValue(Float64 &value, + const signed long pos) const +{ + return m_Item->findAndGetFloat64(DCM_FloatingPointValue, value, pos); +} + + +OFCondition ContentItemMacro::getRationalNumeratorValue(Sint32 &value, + const signed long pos) const +{ + return m_Item->findAndGetSint32(DCM_RationalNumeratorValue, value, pos); +} + + +OFCondition ContentItemMacro::getRationalDenominatorValue(Uint32 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint32(DCM_RationalDenominatorValue, value, pos); +} + + +CodeSequenceMacro* ContentItemMacro::getMeasurementUnitsCodeSequence() +{ + return m_MeasurementUnitsCodeSequence.empty() ? OFnullptr : *m_MeasurementUnitsCodeSequence.begin(); +} + +OFVector& ContentItemMacro::getEntireMeasurementUnitsCodeSequence() +{ + return m_MeasurementUnitsCodeSequence; +} + + +ContentItemMacro::ReferencedSOPSequenceItem* ContentItemMacro::getReferencedSOPSequence() +{ + return m_ReferencedSOPSequence.empty() ? OFnullptr : *m_ReferencedSOPSequence.begin(); +} + +OFVector& ContentItemMacro::getEntireReferencedSOPSequence() +{ + return m_ReferencedSOPSequence; +} + + +OFCondition ContentItemMacro::setValueType(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, value); + return result; +} + + +OFCondition ContentItemMacro::setValueType(const ContentItemMacro::ValueType value, + const OFBool checkValue) +{ + (void)checkValue; + OFCondition result; + switch (value) + { + case VT_DATE: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "DATE"); + break; + } + case VT_TIME: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "TIME"); + break; + } + case VT_DATETIME: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "DATETIME"); + break; + } + case VT_PNAME: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "PNAME"); + break; + } + case VT_UIDREF: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "UIDREF"); + break; + } + case VT_TEXT: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "TEXT"); + break; + } + case VT_CODE: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "CODE"); + break; + } + case VT_NUMERIC: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "NUMERIC"); + break; + } + case VT_COMPOSITE: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "COMPOSITE"); + break; + } + case VT_IMAGE: + { + result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "IMAGE"); + break; + } + default: + { + result = IOD_EC_InvalidElementValue; + } + } + return result; +} + + + +OFCondition ContentItemMacro::setDateTime(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_DateTime, value); + return result; +} + + +OFCondition ContentItemMacro::setDate(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_Date, value); + return result; +} + + +OFCondition ContentItemMacro::setTime(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_Time, value); + return result; +} + + +OFCondition ContentItemMacro::setPersonName(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmPersonName::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_PersonName, value); + return result; +} + + +OFCondition ContentItemMacro::setUID(const OFString &value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertOFStringArray(DCM_UID, value); +} + + +OFCondition ContentItemMacro::setTextValue(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_TextValue, value); + return result; +} + + +OFCondition ContentItemMacro::setNumericValue(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_NumericValue, value); + return result; +} + + +OFCondition ContentItemMacro::setFloatingPointValue(const Float64 value, + const unsigned long pos, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertFloat64(DCM_FloatingPointValue, value, pos); +} + + +OFCondition ContentItemMacro::setRationalNumeratorValue(const Sint32 value, + const unsigned long pos, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertSint32(DCM_RationalNumeratorValue, value, pos); +} + + +OFCondition ContentItemMacro::setRationalDenominatorValue(const Uint32 value, + const unsigned long pos, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertUint32(DCM_RationalDenominatorValue, value, pos); +} + + +OFString ContentItemMacro::toString() +{ + ValueType vt; + getValueType(vt); + OFStringStream oss; + if (getConceptNameCodeSequence()) + { + oss << getConceptNameCodeSequence()->toString() << ": "; + } + else + { + oss << ": "; + } + switch (vt) + { + case VT_CODE: + oss << "CODE: " << getConceptCodeSequence()->toString(); + break; + case VT_COMPOSITE: + { + OFString sopClass, sopInstance, frameNumber; + if (getReferencedSOPSequence()) + { + getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopClass); + getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopInstance); + getReferencedSOPSequence()->getReferencedFrameNumber(frameNumber); + oss << "COMPOSITE: " << sopClass << " / " << sopInstance; + if (!frameNumber.empty()) + { + oss << " / Frames: " << frameNumber; + } + Uint16 val,pos; + val = pos = 0; + if (getReferencedSOPSequence()->getReferencedSegmentNumber(val, pos).good()) + { + oss << " / Segments: "; + while (getReferencedSOPSequence()->getReferencedSegmentNumber(val, pos).good()) + { + oss << val << " "; + pos++; + } + } + } + else + { + oss << "COMPOSITE: "; + } + break; + } + case VT_DATE: + { + OFString date; + getDate(date); + oss << "DATE: " << date; + break; + } + case VT_DATETIME: + { + OFString datetime; + getDateTime(datetime); + oss << "DATETIME: " << datetime; + break; + } + case VT_IMAGE: + { + OFString sopClass, sopInstance, frameNumber; + if (getReferencedSOPSequence()) + { + getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopClass); + getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopInstance); + getReferencedSOPSequence()->getReferencedFrameNumber(frameNumber); + oss << "IMAGE: " << sopClass << " / " << sopInstance; + if (!frameNumber.empty()) + { + oss << " / Frames: " << frameNumber; + } + } + else + { + oss << "IMAGE: "; + } + break; + } + case VT_NUMERIC: + { + OFString val; + getNumericValue(val); + oss << "NUMERIC: " << val; + if (getMeasurementUnitsCodeSequence()) + { + oss << ", Units: " << getMeasurementUnitsCodeSequence()->toString() << ")"; + } + Uint16 pos =0; + Float64 fl64 = 0; + if (getFloatingPointValue(fl64, pos).good()) + { + oss << ", Float value(s): " ; + do + { + oss << val << " "; + pos++; + } while (getFloatingPointValue(fl64, pos).good()); + } + else + { + oss << ", Float value(s): "; + } + pos = 0; + Sint32 si32 = 0; + if (getRationalNumeratorValue(si32, pos).good()) + { + oss << ", Numerator value(s): " ; + do + { + oss << val << " "; + pos++; + } while (getRationalNumeratorValue(si32, pos).good()); + } + pos = 0; + Uint32 ui32 = 0; + if (getRationalDenominatorValue(ui32, pos).good()) + { + oss << ", Denominator value(s): " ; + do + { + oss << val << " "; + pos++; + } while (getRationalDenominatorValue(ui32, pos).good()); + } + + break; + } + case VT_PNAME: + { + OFString val; + getPersonName(val); + oss << "PNAME: " << val; + break; + } + case VT_TEXT: + { + OFString val; + getTextValue(val); + oss << "TEXT: " << val; + break; + } + case VT_TIME: + { + OFString val; + getTime(val); + oss << "TIME: " << val; + break; + } + case VT_UIDREF: + { + OFString val; + getUID(val); + oss << "UIDREF: " << val; + break; + } + case VT_EMPTY: + { + oss << ""; + break; + } + case VT_UNKNOWN: + { + OFString val; + getValueType(val); + oss << ""; + break; + } + default: + { + oss << ""; + } + } + OFSTRINGSTREAM_GETOFSTRING(oss, val); + return val; +} + diff --git a/dcmiod/libsrc/iodimage.cc b/dcmiod/libsrc/iodimage.cc deleted file mode 100644 index 482f7cc0..00000000 --- a/dcmiod/libsrc/iodimage.cc +++ /dev/null @@ -1,89 +0,0 @@ -/* - * - * Copyright (C) 2015, Open Connections GmbH - * All rights reserved. See COPYRIGHT file for details. - * - * This software and supporting documentation are maintained by - * - * OFFIS e.V. - * R&D Division Health - * Escherweg 2 - * D-26121 Oldenburg, Germany - * - * - * Module: dcmiod - * - * Author: Michael Onken - * - * Purpose: Class repres. image IOD by exposing common image IOD attributes - * - */ - -#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ -#include "dcmtk/dcmiod/iodimage.h" -#include "dcmtk/dcmiod/iodutil.h" - -DcmIODImage::DcmIODImage() -: m_GeneralImage(getData(), getRules()), - m_ImagePixel(getData(), getRules()) -{ - // Nothing to do -} - - -IODGeneralImageModule& DcmIODImage::getGeneralImage() -{ - return m_GeneralImage; -} - - -IODImagePixelModule& DcmIODImage::getImagePixel() -{ - return m_ImagePixel; -} - - -DcmIODImage::~DcmIODImage() -{ - // IOD rules created in DcmIODImage are cleared in DcmIODCommon::~DcmIODCommon() -} - - -void DcmIODImage::clearData() -{ - // clear all attributes from base classes - DcmIODCommon::clearData(); - m_GeneralImage.clearData(); - m_ImagePixel.clearData(); -} - - -OFCondition DcmIODImage::read(DcmItem &dataset) -{ - // re-initialize object - DcmIODImage::clearData(); - - // read from base classes - DcmIODCommon::read(dataset); - m_GeneralImage.read(dataset, OFTrue /* clear old data */); - m_ImagePixel.read(dataset, OFTrue /* clear old data */); - - return EC_Normal; -} - - -OFCondition DcmIODImage::write(DcmItem &dataset) -{ - OFCondition result = EC_Normal; - - // Write base class attributes to dataset - result = DcmIODCommon::write(dataset); - - // Write extra modules to dataset - if (result.good()) - result = m_GeneralImage.write(dataset); - if (result.good()) - result = m_ImagePixel.write(dataset); - - return result; -} diff --git a/dcmiod/libsrc/iodmacro.cc b/dcmiod/libsrc/iodmacro.cc index c95174ca..4386202c 100644 --- a/dcmiod/libsrc/iodmacro.cc +++ b/dcmiod/libsrc/iodmacro.cc @@ -22,6 +22,7 @@ #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ #include "dcmtk/dcmiod/iodmacro.h" #include "dcmtk/dcmiod/iodutil.h" // for static IOD helpers +#include "dcmtk/ofstd/ofstream.h" // --------------------------- Code Sequence Macro --------------------------- @@ -144,6 +145,30 @@ OFCondition CodeSequenceMacro::getCodeMeaning(OFString &value, } +OFBool CodeSequenceMacro::empty() +{ + OFString val; + getCodeValue(val); + if (val.empty()) + { + getCodingSchemeDesignator(val); + if (val.empty()) + { + getCodingSchemeVersion(val); + if (val.empty()) + { + getCodingSchemeDesignator(val); + if (val.empty()) + { + return OFTrue; + } + } + } + } + return OFFalse; +} + + // -- set dicom attributes -- OFCondition CodeSequenceMacro::setCodeValue(const OFString &value, @@ -204,6 +229,7 @@ OFCondition CodeSequenceMacro::set(const OFString& value, return result; } + // ---------------------- CodeWithModifiers---------------------- CodeWithModifiers::CodeWithModifiers(const OFString& modifierType, @@ -265,7 +291,10 @@ OFCondition CodeWithModifiers::check(const OFBool quiet) } if (result.bad()) { - DCMIOD_ERROR("Invalid code in Code Sequence Macro or its modifiers"); + if (!quiet) + { + DCMIOD_ERROR("Invalid code in Code Sequence Macro or its modifiers"); + } } return result; } @@ -368,6 +397,20 @@ CodeWithModifiers::~CodeWithModifiers() } +OFString CodeSequenceMacro::toString() +{ + OFString d,m,v; + getCodeValue(v); + getCodeMeaning(m); + getCodingSchemeDesignator(d); + OFStringStream oss; + oss << "(" << d << "," << v << "," << m << ")"; + OFSTRINGSTREAM_GETOFSTRING(oss, msg); + return msg; + +} + + // ---------------------- SeriesAndInstanceReferenceMacro---------------------- const OFString IODSeriesAndInstanceReferenceMacro::m_ComponentName = "SeriesAndInstanceReferenceMacro"; @@ -689,8 +732,7 @@ OFCondition ImageSOPInstanceReferenceMacro::create(const OFString& sopClassUID, OFCondition ImageSOPInstanceReferenceMacro::create(const OFString& sopClassUID, const OFString& sopInstanceUID, const OFVector< Uint16 >& refFramesOrSegments, - ImageSOPInstanceReferenceMacro*& result - ) + ImageSOPInstanceReferenceMacro*& result) { OFCondition cond = create(sopClassUID, sopInstanceUID, result); if (cond.good()) @@ -828,7 +870,7 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const OFString& type) : m_Type(type), m_AnatomicRegion(), m_AnatomicRegionModifier(), - m_PrimaryAnatomicStructure() + m_PrimaryAnatomicStructure("3" /* Modifier in Primary Anatomic Structure is always optional */, "1", DCM_PrimaryAnatomicStructureModifierSequence) { m_Type = type; } @@ -838,12 +880,19 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs) : m_Type(rhs.m_Type), m_AnatomicRegion(), m_AnatomicRegionModifier(), - m_PrimaryAnatomicStructure() + m_PrimaryAnatomicStructure("3" /* Modifier in Primary Anatomic Structure is always optional */, "1", DCM_PrimaryAnatomicStructureModifierSequence) +{ + *this = rhs; +} + + +GeneralAnatomyMacro& GeneralAnatomyMacro::operator=(const GeneralAnatomyMacro& rhs) { if (this != &rhs) { + clearData(); m_Type = rhs.m_Type; - m_AnatomicRegion = m_AnatomicRegion; + m_AnatomicRegion = rhs.m_AnatomicRegion; m_PrimaryAnatomicStructure = rhs.m_PrimaryAnatomicStructure; OFVector::const_iterator it = rhs.m_AnatomicRegionModifier.begin(); @@ -853,6 +902,7 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs) it++; } } + return *this; } @@ -884,7 +934,12 @@ OFCondition GeneralAnatomyMacro::check(const OFBool quiet) if (result.bad()) return result; it++; } - result = m_PrimaryAnatomicStructure.check(quiet); + // Primary Anatomic Structure is optional (type 3), so only check if + // user intended to fill in something. + if (!m_PrimaryAnatomicStructure.empty()) + { + result = m_PrimaryAnatomicStructure.check(quiet); + } return result; } @@ -920,7 +975,10 @@ OFCondition GeneralAnatomyMacro::read(DcmItem& source, /* read Anatomic Region Sequence item into Code Sequence Macro */ DcmIODUtil::readSingleItem(source, DCM_AnatomicRegionSequence, m_AnatomicRegion, m_Type, "GeneralAnatomyMacro"); - /* Get the single item from Anatomic Region Sequence */ + /* read Primary Anatomic Structure Macro (main level, i.e.\ original item) */ + DcmIODUtil::readSingleItem(source, DCM_PrimaryAnatomicStructureSequence, m_PrimaryAnatomicStructure, "3", "GeneralAnatomyMacro"); + + /* Get the single item from Anatomic Region Sequence and read modifier if found */ DcmItem* localItem = NULL; if ( source.findAndGetSequenceItem(DCM_AnatomicRegionSequence, localItem).bad() ) { @@ -936,9 +994,6 @@ OFCondition GeneralAnatomyMacro::read(DcmItem& source, "3", "GeneralAnatomyMacro" ); - /* read Primary Anatomic Structure Macro (main level, i.e.\ original item) */ - m_PrimaryAnatomicStructure.read(source); - return result; } @@ -950,295 +1005,60 @@ OFCondition GeneralAnatomyMacro::write(DcmItem& item) /* delete old data */ item.findAndDeleteElement(DCM_AnatomicRegionSequence); + item.findAndDeleteElement(DCM_PrimaryAnatomicStructureSequence); /* Write sub structures */ DcmIODUtil::writeSingleItem(result, DCM_AnatomicRegionSequence, m_AnatomicRegion, item, m_Type, "GeneralAnatomyMacro"); - DcmIODUtil::writeSubSequence > - ( result, - DCM_AnatomicRegionModifierSequence, - m_AnatomicRegionModifier, - item, - "1-n", - "3", - "GeneralAnatomyMacro"); - return result; -} - - -GeneralAnatomyMacro& GeneralAnatomyMacro::operator=(const GeneralAnatomyMacro& rhs) -{ - if (this != &rhs) + if (result.good()) { - clearData(); - m_Type = rhs.m_Type; - m_AnatomicRegion = rhs.m_AnatomicRegion; - m_PrimaryAnatomicStructure = rhs.m_PrimaryAnatomicStructure; - - OFVector::const_iterator it = rhs.m_AnatomicRegionModifier.begin(); - while ( it != rhs.m_AnatomicRegionModifier.end() ) + DcmItem* seqItem = NULL; + result = item.findAndGetSequenceItem(DCM_AnatomicRegionSequence, seqItem, 0); + if (result.good()) { - m_AnatomicRegionModifier.push_back( new CodeSequenceMacro(**it) ); - it++; + DcmIODUtil::writeSubSequence > + ( result, + DCM_AnatomicRegionModifierSequence, + m_AnatomicRegionModifier, + *seqItem, + "1-n", + "3", + "GeneralAnatomyMacro"); } } - return *this; -} - - -// ---------------------- PrimaryAnatomicStructureMacroItem ------------------ - -PrimaryAnatomicStructureMacroItem::PrimaryAnatomicStructureMacroItem() : - m_AnatomicStructure(), - m_AnatomicStructureModifier() -{ + DcmIODUtil::writeSingleItem(result, DCM_PrimaryAnatomicStructureSequence, m_PrimaryAnatomicStructure, item, "3", "GeneralAnatomyMacro"); + return result; } -PrimaryAnatomicStructureMacroItem::PrimaryAnatomicStructureMacroItem(const PrimaryAnatomicStructureMacroItem& rhs) : - m_AnatomicStructure(), - m_AnatomicStructureModifier() +int GeneralAnatomyMacro::compare(const GeneralAnatomyMacro& rhs) const { - if (this != &rhs) + int result = m_AnatomicRegion.compare(rhs.m_AnatomicRegion); + if (result == 0) { - m_AnatomicStructure = rhs.m_AnatomicStructure; - OFVector::const_iterator it = rhs.m_AnatomicStructureModifier.begin(); - while ( it != rhs.m_AnatomicStructureModifier.begin() ) + if (m_AnatomicRegionModifier.size() > rhs.m_AnatomicRegionModifier.size()) { - m_AnatomicStructureModifier.push_back(new CodeSequenceMacro(**it)); - it++; + return 1; } - } -} - - -PrimaryAnatomicStructureMacroItem& PrimaryAnatomicStructureMacroItem::operator=(const PrimaryAnatomicStructureMacroItem& rhs) -{ - if (this != &rhs) - { - clearData(); - m_AnatomicStructure = rhs.m_AnatomicStructure; - OFVector::const_iterator it = rhs.m_AnatomicStructureModifier.begin(); - while ( it != rhs.m_AnatomicStructureModifier.begin() ) + else if (m_AnatomicRegionModifier.size() < rhs.m_AnatomicRegionModifier.size()) { - m_AnatomicStructureModifier.push_back(new CodeSequenceMacro(**it)); - it++; + return -1; } - } - return *this; -} - - -PrimaryAnatomicStructureMacroItem::~PrimaryAnatomicStructureMacroItem() -{ - clearData(); -} - - -void PrimaryAnatomicStructureMacroItem::clearData() -{ - m_AnatomicStructure.clearData(); - m_AnatomicStructureModifier.clear(); - DcmIODUtil::freeContainer(m_AnatomicStructureModifier); -} - - -OFCondition PrimaryAnatomicStructureMacroItem::check(const OFBool quiet) -{ - OFCondition result = m_AnatomicStructure.check(); - if (result.bad()) return result; - - OFVector::iterator it = m_AnatomicStructureModifier.begin(); - while (it != m_AnatomicStructureModifier.end()) - { - result = (*it)->check(quiet); - if (result.bad()) - return result; - it++; - } - return result; -} - - - -CodeSequenceMacro& PrimaryAnatomicStructureMacroItem::getAnatomicStructure() -{ - return m_AnatomicStructure; -} - - -OFVector& PrimaryAnatomicStructureMacroItem::getAnatomicStructureModifier() -{ - return m_AnatomicStructureModifier; -} - -OFCondition PrimaryAnatomicStructureMacroItem::read(DcmItem& source, - const OFBool clearOldData) -{ - OFCondition result = EC_Normal; - - /* re-initialize object */ - if (clearOldData) - clearData(); - - m_AnatomicStructure.read(source); - - /* check whether cardinality of Primary Anatomic Structure Modifier Sequence and type is ok (produces warnings if not) */ - DcmIODUtil::checkSubSequence(result, source, DCM_PrimaryAnatomicStructureModifierSequence, "1-n", "3", "PrimaryAnatomicStructureMacro"); - - /* read Primary Anatomic Structure Modifier Sequence */ - DcmIODUtil::readSubSequence > - ( source, /* item of Primary Anatomic Structure Sequence */ - DCM_PrimaryAnatomicStructureModifierSequence, - m_AnatomicStructureModifier, - "1-n", - "3", - "GeneralAnatomyMacro" ); - - return result; -} - - -/// Write Primary Anatomic Structure Sequence Item to given item -OFCondition PrimaryAnatomicStructureMacroItem::write(DcmItem& source) -{ - OFCondition result; - m_AnatomicStructure.write(source); - DcmIODUtil::writeSubSequence > - ( - result, - DCM_PrimaryAnatomicStructureModifierSequence, - m_AnatomicStructureModifier, - source, - "1-n", - "3", - "PrimaryAnatomicStructureMacro" - ); - return result; -} - - -// ---------------------- PrimaryAnatomicStructureMacro ---------------------- - - -PrimaryAnatomicStructureMacro::PrimaryAnatomicStructureMacro() : - m_PrimaryAnatomicStructure() -{ - -} - - -PrimaryAnatomicStructureMacro::PrimaryAnatomicStructureMacro(const PrimaryAnatomicStructureMacro& rhs) -{ - if (this != &rhs) - { - OFVector::const_iterator it = rhs.m_PrimaryAnatomicStructure.begin(); - while ( it != rhs.m_PrimaryAnatomicStructure.begin() ) + for (size_t m = 0; m < m_AnatomicRegionModifier.size(); m++) { - m_PrimaryAnatomicStructure.push_back(new PrimaryAnatomicStructureMacroItem(**it)); - it++; + rhs.m_AnatomicRegionModifier[m]; + result = m_AnatomicRegionModifier[m]->compare( *(rhs.m_AnatomicRegionModifier[m]) ); + if (result != 0) + { + return result; + } } + result = m_PrimaryAnatomicStructure.compare(rhs.m_PrimaryAnatomicStructure); } -} - - -PrimaryAnatomicStructureMacro::~PrimaryAnatomicStructureMacro() -{ - clearData(); -} - - -void PrimaryAnatomicStructureMacro::clearData() -{ - m_PrimaryAnatomicStructure.clear(); -} - - -OFCondition PrimaryAnatomicStructureMacro::check(const OFBool quiet) -{ - OFCondition result; - OFVector::iterator it = m_PrimaryAnatomicStructure.begin(); - while (it != m_PrimaryAnatomicStructure.end()) - { - result = (*it)->check(quiet); - if (result.bad()) return result; - it++; - } - return result; -} - - -OFVector& PrimaryAnatomicStructureMacro::getPrimaryAnatomicStructure() -{ - return m_PrimaryAnatomicStructure; -} - - -/// Reads Primary Anatomic Region Sequence from given item -OFCondition PrimaryAnatomicStructureMacro::read(DcmItem& source, - const OFBool clearOldData) -{ - OFCondition result; - - if (clearOldData) - clearData(); - - // check for sequence and report warnings if not ok */ - DcmIODUtil::checkSubSequence(result, source, DCM_PrimaryAnatomicStructureSequence, "1-n", "3", "PrimaryAnantomicStructureMacro"); - - // read sequence into member - DcmIODUtil::readSubSequence > - ( source, - DCM_PrimaryAnatomicStructureSequence, - m_PrimaryAnatomicStructure, - "1-n", - "3", - "PrimaryAnatomicStructureMacro" - ); - return result; -} - - -/// Write Anatomic Region Sequence from given item -OFCondition PrimaryAnatomicStructureMacro::write(DcmItem& item) -{ - OFCondition result = EC_Normal; - - /* delete old data */ - item.findAndDeleteElement(DCM_PrimaryAnatomicStructureSequence); - item.insertEmptyElement(DCM_PrimaryAnatomicStructureSequence); - - DcmIODUtil::writeSubSequence > - ( - result, - DCM_PrimaryAnatomicStructureSequence, - m_PrimaryAnatomicStructure, - item, - "1-n", - "3", - "PrimaryAnatomicStructureMacro" - ); - return result; } -PrimaryAnatomicStructureMacro& PrimaryAnatomicStructureMacro::operator=(const PrimaryAnatomicStructureMacro& rhs) -{ - if (this != &rhs) - { - clearData(); - OFVector::const_iterator it = rhs.m_PrimaryAnatomicStructure.begin(); - while ( it != rhs.m_PrimaryAnatomicStructure.begin() ) - { - m_PrimaryAnatomicStructure.push_back(new PrimaryAnatomicStructureMacroItem(**it)); - it++; - } - } - return *this; -} - - // ---------------------- AlgorithmIdentificationMacro ---------------------- diff --git a/dcmiod/libsrc/modbase.cc b/dcmiod/libsrc/modbase.cc index 43686747..d106ba2c 100644 --- a/dcmiod/libsrc/modbase.cc +++ b/dcmiod/libsrc/modbase.cc @@ -27,6 +27,15 @@ #include "dcmtk/dcmdata/dcdeftag.h" +IODComponent::IODComponent(const IODComponent& rhs) +: m_Item(OFstatic_cast(DcmItem*, rhs.m_Item->clone())) +, m_Rules(rhs.m_Rules->clone()) +, m_Parent(OFnullptr) +{ + +} + + IODComponent::IODComponent(OFshared_ptr item, OFshared_ptr rules, IODComponent* parent) @@ -62,24 +71,14 @@ IODComponent& IODComponent::operator=(const IODComponent& rhs) { if (&rhs != this) { - m_Rules.reset( rhs.m_Rules->clone() ); - m_Item.reset( OFstatic_cast(DcmItem*, rhs.m_Item->clone()) ); - m_Parent = NULL; + m_Item.reset(OFstatic_cast(DcmItem*, rhs.m_Item->clone())); + m_Rules.reset(rhs.m_Rules->clone()); + m_Parent = OFnullptr; } return *this; } -IODComponent::IODComponent(const IODComponent& rhs) -{ - - if (this == &rhs) - return; - - *this = rhs; -} - - void IODComponent::inventMissing() { // Try to fill in missing type 1 information @@ -212,8 +211,8 @@ OFCondition IODComponent::read(DcmItem& source, if (isSequence) { DcmElement *elem = NULL; - source.findAndGetElement( (*rule)->getTagKey(), elem); - DcmIODUtil::checkElementValue(elem, (*rule)->getTagKey(), (*rule)->getVM(), (*rule)->getType(), EC_Normal, (*rule)->getModule().c_str()); + OFCondition cond = source.findAndGetElement( (*rule)->getTagKey(), elem); + DcmIODUtil::checkElementValue(elem, (*rule)->getTagKey(), (*rule)->getVM(), (*rule)->getType(), cond, (*rule)->getModule().c_str()); } else // Normal attributes are checked and copied over into this IOD component { @@ -265,9 +264,28 @@ IODModule::IODModule(): IODComponent() } +IODModule::IODModule(const IODModule& rhs) +: IODComponent(rhs.m_Item, rhs.m_Rules, rhs.m_Parent) +{ + +} + + IODModule::IODModule(OFshared_ptr< DcmItem > item, OFshared_ptr< IODRules > rules) : IODComponent(item, rules, NULL /* No parent for modules */) { // nothing to do, IODComponent does the work } + + +IODModule& IODModule::operator=(const IODModule& rhs) +{ + if (this != &rhs) + { + m_Item = rhs.m_Item; + m_Rules = rhs.m_Rules; + m_Parent = rhs.m_Parent; + } + return *this; +} diff --git a/dcmiod/libsrc/modcommoninstanceref.cc b/dcmiod/libsrc/modcommoninstanceref.cc index 921e9fb3..246b15ec 100644 --- a/dcmiod/libsrc/modcommoninstanceref.cc +++ b/dcmiod/libsrc/modcommoninstanceref.cc @@ -45,7 +45,7 @@ IODCommonInstanceReferenceModule::IODCommonInstanceReferenceModule() IODCommonInstanceReferenceModule::~IODCommonInstanceReferenceModule() { - clearData(); + freeMemory(); } @@ -69,12 +69,10 @@ OFVector & IODCom void IODCommonInstanceReferenceModule::clearData() { - DcmIODUtil::freeContainer(m_StudiesContainingOtherReferencedInstancesSequence); - DcmIODUtil::freeContainer(m_ReferenceSeriesItems); + freeMemory(); } - OFCondition IODCommonInstanceReferenceModule::read(DcmItem& source, const OFBool clearOldData) { @@ -204,7 +202,6 @@ void IODCommonInstanceReferenceModule::resetRules() } - OFCondition IODCommonInstanceReferenceModule::addSeriesReference( OFVector& container, const IODReference& ref) @@ -348,3 +345,10 @@ OFCondition IODCommonInstanceReferenceModule::StudiesOtherInstancesItem::setStud result = m_Item->putAndInsertOFStringArray(DCM_StudyInstanceUID, value); return result; } + + +void IODCommonInstanceReferenceModule::freeMemory() +{ + DcmIODUtil::freeContainer(m_StudiesContainingOtherReferencedInstancesSequence); + DcmIODUtil::freeContainer(m_ReferenceSeriesItems); +} \ No newline at end of file diff --git a/dcmiod/libsrc/modenhequipment.cc b/dcmiod/libsrc/modenhequipment.cc index 6801c84a..dcd71f4c 100644 --- a/dcmiod/libsrc/modenhequipment.cc +++ b/dcmiod/libsrc/modenhequipment.cc @@ -58,16 +58,16 @@ OFCondition IODEnhGeneralEquipmentModule::create(const IODEnhGeneralEquipmentMod void IODEnhGeneralEquipmentModule::resetRules() { - m_Rules->addRule(new IODRule(DCM_Manufacturer, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_Manufacturer, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); } IODEnhGeneralEquipmentModule::~IODEnhGeneralEquipmentModule() { - clearData(); + // Nothing to do } diff --git a/dcmiod/libsrc/modequipment.cc b/dcmiod/libsrc/modequipment.cc index 0d2abeb4..ade432db 100644 --- a/dcmiod/libsrc/modequipment.cc +++ b/dcmiod/libsrc/modequipment.cc @@ -48,20 +48,19 @@ void IODGeneralEquipmentModule::resetRules() { // parameters are tag, VM, type. Overwrite old rules if any. - m_Rules->addRule(new IODRule(DCM_Manufacturer, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_InstitutionName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_InstitutionAddress, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_StationName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_InstitutionalDepartmentName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); - m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_Manufacturer, "1", "2", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_InstitutionName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_InstitutionAddress, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_StationName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_InstitutionalDepartmentName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); + m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue); } IODGeneralEquipmentModule::~IODGeneralEquipmentModule() { - clearData(); } diff --git a/dcmiod/libsrc/modfloatingpointimagepixel.cc b/dcmiod/libsrc/modfloatingpointimagepixel.cc new file mode 100644 index 00000000..d5e1494e --- /dev/null +++ b/dcmiod/libsrc/modfloatingpointimagepixel.cc @@ -0,0 +1,260 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Michael Onken + * + * Purpose: Floating Point and Double Floating Point Image Pixel Module + * + */ + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ +#include "dcmtk/dcmiod/modfloatingpointimagepixel.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcvrfl.h" +#include "dcmtk/dcmdata/dcvrfd.h" +#include "dcmtk/dcmiod/iodutil.h" + +const OFString IODFloatingPointImagePixelModule::m_ModuleName = "FloatingPointImagePixelModule"; +const DcmTagKey IODFloatingPointImagePixelModule::pixel_data_tag = DCM_FloatPixelData; +const DcmTagKey IODDoubleFloatingPointImagePixelModule::pixel_data_tag = DCM_DoubleFloatPixelData; + + +IODFloatingPointImagePixelModule::IODFloatingPointImagePixelModule(OFshared_ptr item, + OFshared_ptr rules) +: IODImagePixelBase(item, rules) +{ + // reset element rules + resetRules(); + getData().putAndInsertUint16(DCM_BitsAllocated, 32); + getData().putAndInsertUint16(DCM_SamplesPerPixel, 1); + getData().putAndInsertUint16(DCM_PixelRepresentation, 1); + getData().putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2"); +} + + +OFString IODFloatingPointImagePixelModule::getName() const +{ + return m_ModuleName; +} + + +IODFloatingPointImagePixelModule::IODFloatingPointImagePixelModule() +: IODImagePixelBase() +{ + resetRules(); +} + + +IODFloatingPointImagePixelModule::~IODFloatingPointImagePixelModule() +{ + // nothing to do +} + + +void IODFloatingPointImagePixelModule::resetRules() +{ + // Parameters this module is responsible for. + m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_PixelAspectRatio, "2", "1C", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_FloatPixelPaddingValue, "1", "3", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_FloatPixelPaddingRangeLimit, "1", "1C", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue); +} + + +OFCondition IODFloatingPointImagePixelModule::read(DcmItem& source, + const OFBool clearOldData) +{ + // Read common attributes + IODImagePixelBase::read(source, clearOldData); + // Read extra attributes of Floating Point Image Pixel Module + IODModule::read(source, clearOldData); + return EC_Normal; +} + + +OFCondition IODFloatingPointImagePixelModule::write(DcmItem& destination) +{ + // Write Photometric Interpretation fixed value for Floating Point Image Pixel Module + OFCondition result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2"); + // Write common attributes + if (result.good()) + { + result = IODImagePixelBase::write(destination); + } + // Write extra attributes of Floating Poing Image Pixel Module + if (result.good()) + { + result = IODModule::write(destination); + } + return result; +} + + +IODImagePixelBase::DataType IODFloatingPointImagePixelModule::getDataType() const +{ + return IODImagePixelBase::DATA_TYPE_FLOAT; +} + + +OFCondition IODFloatingPointImagePixelModule::getFloatPixelPaddingValue(Float32& value, + const long pos) +{ + return m_Item->findAndGetFloat32(DCM_FloatPixelPaddingValue, value, pos); +} + + +OFCondition IODFloatingPointImagePixelModule::getFloatPixelPaddingRangeLimit(Float32& value, + const long pos) +{ + return m_Item->findAndGetFloat32(DCM_FloatPixelPaddingRangeLimit, value, pos); +} + + +OFCondition IODFloatingPointImagePixelModule::setFloatPixelPaddingValue(const Float32 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertFloat32(DCM_FloatPixelPaddingValue, value); +} + + +OFCondition IODFloatingPointImagePixelModule::setFloatPixelPaddingRangeLimit(const Float32 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertFloat32(DCM_FloatPixelPaddingRangeLimit, value); +} + +// ---------------- Double Floating Point Image Pixel Module ------------------ + +const OFString IODDoubleFloatingPointImagePixelModule::m_ModuleName = "DoubleFloatingPointImagePixelModule"; + + +IODDoubleFloatingPointImagePixelModule::IODDoubleFloatingPointImagePixelModule(OFshared_ptr item, + OFshared_ptr rules) +: IODImagePixelBase(item, rules) +{ + // reset element rules + resetRules(); + + getData().putAndInsertUint16(DCM_BitsAllocated, 64); + getData().putAndInsertUint16(DCM_SamplesPerPixel, 1); + getData().putAndInsertUint16(DCM_PixelRepresentation, 1); + getData().putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2"); +} + + +OFString IODDoubleFloatingPointImagePixelModule::getName() const +{ + return m_ModuleName; +} + + +IODDoubleFloatingPointImagePixelModule::IODDoubleFloatingPointImagePixelModule() +: IODImagePixelBase() +{ + resetRules(); +} + + +IODDoubleFloatingPointImagePixelModule::~IODDoubleFloatingPointImagePixelModule() +{ + // nothing to do +} + + +void IODDoubleFloatingPointImagePixelModule::resetRules() +{ + // Parameters are tag, VM, type. Overwrite old rules if any. + // Take over responsibility for Photometric Interpretation since we want to write + // "MONOCHROME2" as a fixed value. + m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE, "MONOCHROME2"), OFTrue); + m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_PixelAspectRatio, "2", "1C", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_DoubleFloatPixelPaddingValue, "1", "3", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_DoubleFloatPixelPaddingRangeLimit, "1", "1C", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue); +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::read(DcmItem& source, + const OFBool clearOldData) +{ + // Read common attributes + IODImagePixelBase::read(source, clearOldData); + // Read extra attributes of Floating Point Image Pixel Module + IODModule::read(source, clearOldData); + return EC_Normal; +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::write(DcmItem& destination) +{ + // Write Photometric Interpretation fixed value for Floating Point Image Pixel Module + OFCondition result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2"); + // Write common attributes + if (result.good()) + { + result = IODImagePixelBase::write(destination); + } + // Write extra attributes of Floating Poing Image Pixel Module + if (result.good()) + { + result = IODModule::write(destination); + } + return result; +} + + +IODImagePixelBase::DataType IODDoubleFloatingPointImagePixelModule::getDataType() const +{ + return IODImagePixelBase::DATA_TYPE_DOUBLE; +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::getDoubleFloatPixelPaddingValue(Float64& value, + const long pos) +{ + return m_Item->findAndGetFloat64(DCM_FloatPixelPaddingValue, value, pos); +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::getDoubleFloatPixelPaddingRangeLimit(Float64& value, + const long pos) +{ + return m_Item->findAndGetFloat64(DCM_DoubleFloatPixelPaddingRangeLimit, value, pos); +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::setDoubleFloatPixelPaddingValue(const Float64 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertFloat64(DCM_DoubleFloatPixelPaddingValue, value); +} + + +OFCondition IODDoubleFloatingPointImagePixelModule::setDoubleFloatPixelPaddingRangeLimit(const Float64 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertFloat64(DCM_DoubleFloatPixelPaddingRangeLimit, value); +} diff --git a/dcmiod/libsrc/modfor.cc b/dcmiod/libsrc/modfor.cc index 3ca984d6..3e331666 100644 --- a/dcmiod/libsrc/modfor.cc +++ b/dcmiod/libsrc/modfor.cc @@ -61,8 +61,7 @@ OFString IODFoRModule::getName() const IODFoRModule::~IODFoRModule() { - // clear rules from rule set - clearData(); + // Nothing to do } @@ -80,7 +79,6 @@ OFCondition IODFoRModule::getPositionReferenceIndicator(OFString& value, } - OFCondition IODFoRModule::setFrameOfReferenceUID(const OFString &value, const OFBool checkValue) { @@ -100,3 +98,22 @@ OFCondition IODFoRModule::setPositionReferenceIndicator(const OFString &value, return result; } + +void IODFoRModule::ensureFrameOfReferenceUID(const OFBool correctInvalid) +{ + OFString uidstr; + + // Create new Frame of Reference instance UID if required + if (getFrameOfReferenceUID(uidstr).bad() || uidstr.empty() ) + { + setFrameOfReferenceUID(DcmIODUtil::createUID(1 /* Series Level */)); + } + else if (!uidstr.empty() && correctInvalid) + { + if (DcmUniqueIdentifier::checkStringValue(uidstr, "1").bad()) + { + setFrameOfReferenceUID(DcmIODUtil::createUID(1 /* Series Level */)); + } + } +} + diff --git a/dcmiod/libsrc/modimagepixel.cc b/dcmiod/libsrc/modimagepixel.cc index c2a8c583..6343c5d6 100644 --- a/dcmiod/libsrc/modimagepixel.cc +++ b/dcmiod/libsrc/modimagepixel.cc @@ -27,38 +27,46 @@ #include "dcmtk/dcmdata/dcvris.h" #include "dcmtk/dcmiod/iodutil.h" -const OFString IODImagePixelModule::m_ModuleName = "ImagePixelModule"; - - -IODImagePixelModule::IODImagePixelModule(OFshared_ptr item, - OFshared_ptr rules) -: IODModule(item, rules) +template +const OFString IODImagePixelModule::m_ModuleName = "ImagePixelModule"; +template +const DcmTagKey IODImagePixelModule::pixel_data_tag = DCM_PixelData; + +template +IODImagePixelModule::IODImagePixelModule(OFshared_ptr item, + OFshared_ptr rules) +: IODImagePixelBase(item, rules) { // reset element rules resetRules(); } - -OFString IODImagePixelModule::getName() const +template +OFString IODImagePixelModule::getName() const { return m_ModuleName; } - -IODImagePixelModule::IODImagePixelModule() -: IODModule() +template +IODImagePixelModule::IODImagePixelModule() +: IODImagePixelBase() { resetRules(); } +template +IODImagePixelModule::~IODImagePixelModule() +{ +} -void IODImagePixelModule::resetRules() +template +void IODImagePixelModule::resetRules() { // parameters are tag, VM, type. Overwrite old rules if any. m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); - m_Rules->addRule(new IODRule(DCM_Columns, "1", "1n", getName(), DcmIODTypes::IE_IMAGE), OFTrue); + m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); m_Rules->addRule(new IODRule(DCM_BitsStored, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); m_Rules->addRule(new IODRule(DCM_HighBit, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue); @@ -68,83 +76,66 @@ void IODImagePixelModule::resetRules() m_Rules->addRule(new IODRule(DCM_ICCProfile, "1", "3", getName(), DcmIODTypes::IE_IMAGE), OFTrue); } - -IODImagePixelModule::~IODImagePixelModule() +template +OFCondition IODImagePixelModule::read(DcmItem& source, + const OFBool clearOldData) { + // Read common attributes + IODImagePixelBase::read(source, clearOldData); + // Read extra attributes of Image Pixel Module + IODModule::read(source, clearOldData); + return EC_Normal; } - -OFCondition IODImagePixelModule::getSamplesPerPixel(Uint16 &value, - const signed long pos) +template +OFCondition IODImagePixelModule::write(DcmItem& destination) { - return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos); -} - - -OFCondition IODImagePixelModule::getPhotometricInterpretation(OFString&value, - const signed long pos) -{ - return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos); -} - - -OFCondition IODImagePixelModule::getRows(Uint16& value, - const signed long pos) -{ - return m_Item->findAndGetUint16(DCM_Rows, value, pos); -} - - -OFCondition IODImagePixelModule::getColumns(Uint16& value, - const signed long pos) -{ - return m_Item->findAndGetUint16(DCM_Columns, value, pos); + // Write common attributes + OFCondition result = IODImagePixelBase::write(destination); + // Write extra attributes of Image Pixel Module + if (result.good()) + { + IODModule::write(destination); + } + return result; } - -OFCondition IODImagePixelModule::getBitsAllocated(Uint16& value, - const signed long pos) +template +IODImagePixelBase::DataType IODImagePixelModule::getDataType() const { - return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos); + return IODImagePixelBase::DATA_TYPE_INTEGER; } - -OFCondition IODImagePixelModule::getBitsStored(Uint16& value, - const signed long pos) +template +OFCondition IODImagePixelModule::getBitsStored(Uint16& value, + const signed long pos) { return m_Item->findAndGetUint16(DCM_BitsStored, value, pos); } - -OFCondition IODImagePixelModule::getHighBit(Uint16& value, - const signed long pos) +template +OFCondition IODImagePixelModule::getHighBit(Uint16& value, + const signed long pos) { return m_Item->findAndGetUint16(DCM_HighBit, value, pos); } - -OFCondition IODImagePixelModule::getPixelRepresentation(Uint16& value, - const signed long pos) +template +OFCondition IODImagePixelModule::getPixelRepresentation(Uint16& value, + const signed long pos) { return m_Item->findAndGetUint16(DCM_PixelRepresentation, value, pos); } - -OFCondition IODImagePixelModule::getPlanarConfiguration(Uint16& value, - const signed long pos) +template +OFCondition IODImagePixelModule::getPlanarConfiguration(Uint16& value, + const signed long pos) { return m_Item->findAndGetUint16(DCM_PlanarConfiguration, value, pos); } - -OFCondition IODImagePixelModule::getPixelAspectRatio(Uint16& value, - const signed long pos) -{ - return m_Item->findAndGetUint16(DCM_PixelAspectRatio, value, pos); -} - - -OFCondition IODImagePixelModule::getICCProfile(OFVector& values) +template +OFCondition IODImagePixelModule::getICCProfile(OFVector& values) { DcmElement* elem = NULL; OFCondition result = m_Item->findAndGetElement(DCM_ICCProfile, elem); @@ -160,8 +151,8 @@ OFCondition IODImagePixelModule::getICCProfile(OFVector& values) return EC_TagNotFound; } - -OFCondition IODImagePixelModule::setSamplesPerPixel(const Uint16 value, +template +OFCondition IODImagePixelModule::setSamplesPerPixel(const Uint16 value, const OFBool checkValue) { OFCondition result = EC_Normal; @@ -183,12 +174,11 @@ OFCondition IODImagePixelModule::setSamplesPerPixel(const Uint16 value, if (result.good() ) result = m_Item->putAndInsertUint16(DCM_SamplesPerPixel, value); - // TODO: Check consistency with photometric interpretation return result; } - -OFCondition IODImagePixelModule::setPhotometricInterpretation(const OFString& value, +template +OFCondition IODImagePixelModule::setPhotometricInterpretation(const OFString& value, const OFBool checkValue) { OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -197,48 +187,32 @@ OFCondition IODImagePixelModule::setPhotometricInterpretation(const OFString& va return result; } - -OFCondition IODImagePixelModule::setRows(const Uint16 value, - const OFBool checkValue) -{ - (void)checkValue; - return m_Item->putAndInsertUint16(DCM_Rows, value); -} - - -OFCondition IODImagePixelModule::setColumns(const Uint16 value, - const OFBool checkValue) -{ - (void)checkValue; - return m_Item->putAndInsertUint16(DCM_Columns, value); -} - - -OFCondition IODImagePixelModule::setBitsAllocated(const Uint16 value, +template +OFCondition IODImagePixelModule::setBitsAllocated(const Uint16 value, const OFBool checkValue) { (void)checkValue; return m_Item->putAndInsertUint16(DCM_BitsAllocated, value); } - -OFCondition IODImagePixelModule::setBitsStored(const Uint16 value, +template +OFCondition IODImagePixelModule::setBitsStored(const Uint16 value, const OFBool checkValue) { (void)checkValue; return m_Item->putAndInsertUint16(DCM_BitsStored, value); } - -OFCondition IODImagePixelModule::setHighBit(const Uint16 value, +template +OFCondition IODImagePixelModule::setHighBit(const Uint16 value, const OFBool checkValue) { (void)checkValue; return m_Item->putAndInsertUint16(DCM_HighBit, value); } - -OFCondition IODImagePixelModule::setPixelRepresentation(const Uint16 value, +template +OFCondition IODImagePixelModule::setPixelRepresentation(const Uint16 value, const OFBool checkValue) { OFCondition result = EC_Normal; @@ -257,8 +231,8 @@ OFCondition IODImagePixelModule::setPixelRepresentation(const Uint16 value, return result; } - -OFCondition IODImagePixelModule::setPlanarConfiguration(const Uint16 value, +template +OFCondition IODImagePixelModule::setPlanarConfiguration(const Uint16 value, const OFBool checkValue) { OFCondition result = EC_Normal; @@ -277,26 +251,14 @@ OFCondition IODImagePixelModule::setPlanarConfiguration(const Uint16 value, return result; } - -OFCondition IODImagePixelModule::setPixelAspectRatio(const OFString& verticalPixelSize, - const OFString& horizontalPixelSize, - const OFBool checkValue) -{ - OFString concat = verticalPixelSize; - concat += "\\"; concat += horizontalPixelSize; - OFCondition cond; - if (checkValue) - { - cond = DcmIntegerString::checkStringValue(concat, "2"); - // check for unsignedness, too? - } - if (cond.good()) m_Item->putAndInsertOFStringArray(DCM_PixelAspectRatio, concat); - return cond; -} - - -OFCondition IODImagePixelModule::setICCProfile(const Uint8* values, +template +OFCondition IODImagePixelModule::setICCProfile(const Uint8* values, const size_t length) { return m_Item->putAndInsertUint8Array(DCM_ICCProfile, values, length); } + +template class IODImagePixelModule; +template class IODImagePixelModule; +template class IODImagePixelModule; +template class IODImagePixelModule; diff --git a/dcmiod/libsrc/modimagepixelbase.cc b/dcmiod/libsrc/modimagepixelbase.cc new file mode 100644 index 00000000..f35725e5 --- /dev/null +++ b/dcmiod/libsrc/modimagepixelbase.cc @@ -0,0 +1,138 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Michael Onken + * + * Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point) + * + */ + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ +#include "dcmtk/dcmiod/modimagepixelbase.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcvrobow.h" +#include "dcmtk/dcmdata/dcvrcs.h" +#include "dcmtk/dcmdata/dcvris.h" +#include "dcmtk/dcmiod/iodutil.h" + +const OFString IODImagePixelBase::m_ModuleName = "ImagePixelBase"; + + +IODImagePixelBase::IODImagePixelBase(OFshared_ptr item, + OFshared_ptr rules) +: IODModule(item, rules) +{ + // reset element rules + resetRules(); +} + + +OFString IODImagePixelBase::getName() const +{ + return m_ModuleName; +} + + +IODImagePixelBase::IODImagePixelBase() +: IODModule() +{ + resetRules(); +} + + +IODImagePixelBase::~IODImagePixelBase() +{ +} + + +void IODImagePixelBase::resetRules() +{ + // all rules in sub classes +} + + +OFCondition IODImagePixelBase::getSamplesPerPixel(Uint16 &value, + const signed long pos) +{ + return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos); +} + + +OFCondition IODImagePixelBase::getPhotometricInterpretation(OFString&value, + const signed long pos) +{ + return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos); +} + + +OFCondition IODImagePixelBase::getRows(Uint16& value, + const signed long pos) +{ + return m_Item->findAndGetUint16(DCM_Rows, value, pos); +} + + +OFCondition IODImagePixelBase::getColumns(Uint16& value, + const signed long pos) +{ + return m_Item->findAndGetUint16(DCM_Columns, value, pos); +} + + +OFCondition IODImagePixelBase::getBitsAllocated(Uint16& value, + const signed long pos) +{ + return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos); +} + + +OFCondition IODImagePixelBase::getPixelAspectRatio(Uint16& value, + const signed long pos) +{ + return m_Item->findAndGetUint16(DCM_PixelAspectRatio, value, pos); +} + + +OFCondition IODImagePixelBase::setRows(const Uint16 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertUint16(DCM_Rows, value); +} + + +OFCondition IODImagePixelBase::setColumns(const Uint16 value, + const OFBool checkValue) +{ + (void)checkValue; + return m_Item->putAndInsertUint16(DCM_Columns, value); +} + + +OFCondition IODImagePixelBase::setPixelAspectRatio(const OFString& verticalPixelSize, + const OFString& horizontalPixelSize, + const OFBool checkValue) +{ + OFString concat = verticalPixelSize; + concat += "\\"; concat += horizontalPixelSize; + OFCondition cond; + if (checkValue) + { + cond = DcmIntegerString::checkStringValue(concat, "2"); + // check for unsignedness, too? + } + if (cond.good()) m_Item->putAndInsertOFStringArray(DCM_PixelAspectRatio, concat); + return cond; +} diff --git a/dcmiod/libsrc/modmultiframedimension.cc b/dcmiod/libsrc/modmultiframedimension.cc index 199dfa4a..e6862a40 100644 --- a/dcmiod/libsrc/modmultiframedimension.cc +++ b/dcmiod/libsrc/modmultiframedimension.cc @@ -70,23 +70,48 @@ OFCondition IODMultiframeDimensionModule::addDimensionIndex(const DcmTagKey& dim return IOD_EC_MissingAttribute; } + // Add Dimension Organization by its UID if such organization does not exist yet + OFVector::iterator it = m_DimensionOrganizationSequence.begin(); + while (it != m_DimensionOrganizationSequence.end()) + { + OFString val; + (*it)->getDimensionOrganizationUID(val); + if (val == dimensionOrganizationUID) + { + break; + } + it++; + } + OFCondition result; + if (it == m_DimensionOrganizationSequence.end()) + { + DimensionOrganizationItem* item = new DimensionOrganizationItem; + if (item == NULL) + { + return EC_MemoryExhausted; + } + result = item->setDimensionOrganizationUID(dimensionOrganizationUID); + if (result.bad()) + return result; + m_DimensionOrganizationSequence.push_back(item); + } + + // Create dimension and add it to this object DimensionIndexItem* dim = new DimensionIndexItem(); if (!dim) return EC_MemoryExhausted; - OFCondition result = dim->setDimensionOrganizationUID(dimensionOrganizationUID); + result = dim->setDimensionOrganizationUID(dimensionOrganizationUID); if (result.good()) result = dim->setFunctionalGroupPointer(functionalGroupPointer); if (result.good()) result = dim->setDimensionIndexPointer(dimensionIndexPointer); if (result.good() && !dimensionIndexPrivateCreator.empty()) dim->setDimensionIndexPrivateCreator(dimensionIndexPrivateCreator); if (result.good() && !functionalGroupPrivateCreator.empty()) dim->setFunctionalGroupPrivateCreator(functionalGroupPrivateCreator); if (result.good() && !dimensionDescriptionLabel.empty()) dim->setDimensionDescriptionLabel(dimensionDescriptionLabel); - if (result.bad()) { DCMIOD_ERROR("Could not add Dimension Index: Invalid data values"); delete dim; } - m_DimensionIndexSequence.push_back(dim); return result; diff --git a/dcmiod/libsrc/modmultiframefg.cc b/dcmiod/libsrc/modmultiframefg.cc index 6f324e95..4b256baa 100644 --- a/dcmiod/libsrc/modmultiframefg.cc +++ b/dcmiod/libsrc/modmultiframefg.cc @@ -115,7 +115,6 @@ OFCondition IODMultiFrameFGModule::getRepresentativeFrameNumber(Uint16& value, OFCondition IODMultiFrameFGModule::setConcatenationInfo(const IODMultiFrameFGModule::ConcatenationInfo& concatenationInfo) { - // TODO: Checks? m_ConcatenationInfo = concatenationInfo; return EC_Normal; } @@ -131,7 +130,6 @@ OFCondition IODMultiFrameFGModule::setInstanceNumber(const OFString& value, } - OFCondition IODMultiFrameFGModule::setContentDate(const OFString& value, const OFBool checkValue) { diff --git a/dcmiod/libsrc/modsynchronization.cc b/dcmiod/libsrc/modsynchronization.cc index 3aceba7e..4d496e3b 100644 --- a/dcmiod/libsrc/modsynchronization.cc +++ b/dcmiod/libsrc/modsynchronization.cc @@ -72,8 +72,6 @@ OFString IODSynchronizationModule::getName() const IODSynchronizationModule::~IODSynchronizationModule() { - // clear rules from rule set - clearData(); } @@ -152,11 +150,12 @@ OFCondition IODSynchronizationModule::setSynchronizationFrameofReferenceUID(cons OFCondition IODSynchronizationModule::setSynchronizationTrigger(const OFString &value, const OFBool checkValue) { - OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = m_Item->putAndInsertOFStringArray(DCM_SynchronizationTrigger, value); - // TODO: Further checks since this field has enumerated values - return result; + if (checkValue && !isValidSynchronizationTrigger(value)) + { + DCMIOD_ERROR("Synchronization Trigger does not allow value " << value << " (enumerated values)"); + return IOD_EC_InvalidElementValue; + } + return m_Item->putAndInsertOFStringArray(DCM_SynchronizationTrigger, value); } @@ -186,11 +185,12 @@ OFCondition IODSynchronizationModule::setSynchronizationChannel(const OFPairputAndInsertOFStringArray(DCM_AcquisitionTimeSynchronized, value); - // TODO: Further checks since this field has enumerated values - return result; + if (checkValue && !isValidAcquisitionTimeSynchronized(value)) + { + DCMIOD_ERROR("Acquisition Time Synchronized must only allows values 'Y' and 'N' (enumerated values)"); + return IOD_EC_InvalidElementValue; + } + return m_Item->putAndInsertOFStringArray(DCM_AcquisitionTimeSynchronized, value); } @@ -207,14 +207,16 @@ OFCondition IODSynchronizationModule::setTimeSource(const OFString &value, OFCondition IODSynchronizationModule::setTimeDistributionProtocol(const OFString &value, const OFBool checkValue) { - OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = m_Item->putAndInsertOFStringArray(DCM_TimeDistributionProtocol, value); - // TODO: Further checks since this field has enumerated values - return result; + if (checkValue && !isValidTimeDistributionProtocol(value)) + { + DCMIOD_ERROR("Time Distribution Protocol does not allow value " << value << " (enumerated values)"); + return IOD_EC_InvalidElementValue; + } + return m_Item->putAndInsertOFStringArray(DCM_TimeDistributionProtocol, value); } + OFCondition IODSynchronizationModule::setNTPSourceAddress(const OFString &value, const OFBool checkValue) { @@ -223,3 +225,24 @@ OFCondition IODSynchronizationModule::setNTPSourceAddress(const OFString &value, result = m_Item->putAndInsertOFStringArray(DCM_NTPSourceAddress, value); return result; } + + + +OFBool IODSynchronizationModule::isValidAcquisitionTimeSynchronized(const OFString& value) +{ + return ( (value == "Y") || (value == "N") ); + +} + + +OFBool IODSynchronizationModule::isValidTimeDistributionProtocol(const OFString& value) +{ + return ( (value == "NTP") || (value == "IRIG") || (value == "GPS") || (value == "SNTP") || (value == "PTP") ); +} + + +OFBool IODSynchronizationModule::isValidSynchronizationTrigger(const OFString& value) +{ + return ( (value == "SOURCE") || (value == "EXTERNAL") || (value == "PASSTHRU") || (value == "NO TRIGGER") ); +} + diff --git a/dcmiod/libsrc/modusfor.cc b/dcmiod/libsrc/modusfor.cc index 231cb610..8c570cfd 100644 --- a/dcmiod/libsrc/modusfor.cc +++ b/dcmiod/libsrc/modusfor.cc @@ -70,8 +70,7 @@ OFString IODUSFoRModule::getName() const IODUSFoRModule::~IODUSFoRModule() { - // clear rules from rule set - clearData(); + // Nothing to do } diff --git a/dcmiod/tests/CMakeLists.txt b/dcmiod/tests/CMakeLists.txt index 3a04022e..1ebae734 100644 --- a/dcmiod/tests/CMakeLists.txt +++ b/dcmiod/tests/CMakeLists.txt @@ -1,5 +1,5 @@ # declare executables -DCMTK_ADD_EXECUTABLE(dcmiod_tests tests tcielabutil) +DCMTK_ADD_EXECUTABLE(dcmiod_tests tests tcielabutil timagepixel) # make sure executables are linked to the corresponding libraries DCMTK_TARGET_LINK_MODULES(dcmiod_tests dcmiod dcmdata oflog ofstd) diff --git a/dcmiod/tests/Makefile.dep b/dcmiod/tests/Makefile.dep index 7ef8406f..3cdb9905 100644 --- a/dcmiod/tests/Makefile.dep +++ b/dcmiod/tests/Makefile.dep @@ -88,3 +88,143 @@ tests.o: tests.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/logmacro.h \ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ ../../oflog/include/dcmtk/oflog/tracelog.h +timagepixel.o: timagepixel.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/oftest.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../include/dcmtk/dcmiod/iodcommn.h ../include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/ioddef.h \ + ../include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmiod/modpatient.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmiod/modbase.h \ + ../include/dcmtk/dcmiod/modpatientstudy.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../include/dcmtk/dcmiod/modgeneralstudy.h \ + ../include/dcmtk/dcmiod/iodmacro.h \ + ../include/dcmtk/dcmiod/modequipment.h \ + ../include/dcmtk/dcmiod/modgeneralseries.h \ + ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modsopcommon.h \ + ../include/dcmtk/dcmiod/modcommoninstanceref.h \ + ../include/dcmtk/dcmiod/iodreferences.h \ + ../include/dcmtk/dcmiod/modgeneralimage.h \ + ../include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../include/dcmtk/dcmiod/modimagepixelbase.h \ + ../include/dcmtk/dcmiod/modimagepixel.h \ + ../include/dcmtk/dcmiod/modfloatingpointimagepixel.h diff --git a/dcmiod/tests/Makefile.in b/dcmiod/tests/Makefile.in index 9aab2c89..aa20c71e 100644 --- a/dcmiod/tests/Makefile.in +++ b/dcmiod/tests/Makefile.in @@ -23,7 +23,7 @@ LIBDIRS = -L$(top_srcdir)/libsrc -L$(dcmioddir)/libsrc -L$(dcmdatadir)/libsrc \ LOCALLIBS = -ldcmiod -ldcmdata -loflog -lofstd \ $(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(ICONVLIBS) -test_objs = tests.o tcielabutil.o +test_objs = tests.o tcielabutil.o timagepixel.o objs = tests.o $(test_objs) progs = tests diff --git a/dcmiod/tests/tests.cc b/dcmiod/tests/tests.cc index 3f583bfa..c1528a9c 100644 --- a/dcmiod/tests/tests.cc +++ b/dcmiod/tests/tests.cc @@ -23,4 +23,5 @@ #include "dcmtk/ofstd/oftest.h" OFTEST_REGISTER(dcmiod_tcielabutil); +OFTEST_REGISTER(dcmiod_imagepixel); OFTEST_MAIN("dcmiod") diff --git a/dcmiod/tests/timagepixel.cc b/dcmiod/tests/timagepixel.cc new file mode 100644 index 00000000..2c4ed75f --- /dev/null +++ b/dcmiod/tests/timagepixel.cc @@ -0,0 +1,34 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmiod + * + * Author: Jan Schlamelcher + * + * Purpose: Tests for dcmiod's color conversion functionalities + * + */ + + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/oftest.h" +#include "dcmtk/dcmiod/iodimage.h" +#include "dcmtk/dcmiod/modimagepixel.h" +#include "dcmtk/dcmiod/modfloatingpointimagepixel.h" + +OFTEST(dcmiod_imagepixel) +{ + DcmIODImage,IODFloatingPointImagePixelModule> image1; + DcmIODImage,IODImagePixelModule,IODDoubleFloatingPointImagePixelModule> image2( OFin_place > ); +} diff --git a/dcmjpeg/libsrc/ddpiimpl.cc b/dcmjpeg/libsrc/ddpiimpl.cc index 8935e3f0..7bd35ef1 100644 --- a/dcmjpeg/libsrc/ddpiimpl.cc +++ b/dcmjpeg/libsrc/ddpiimpl.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2003-2014, OFFIS e.V. + * Copyright (C) 2003-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -79,7 +79,7 @@ OFBool DicomDirImageImplementation::scaleImage(DcmItem *dataset, /* check parameters (at least the pointers) */ if ((dataset != NULL) && (pixel != NULL) && (frame > 0)) { - size_t flags = CIF_UsePartialAccessToPixelData | CIF_NeverAccessEmbeddedOverlays; + unsigned long flags = CIF_UsePartialAccessToPixelData | CIF_NeverAccessEmbeddedOverlays; if (decompressAll) flags |= CIF_DecompressCompletePixelData; /* open referenced image */ diff --git a/dcmjpeg/libsrc/djcodece.cc b/dcmjpeg/libsrc/djcodece.cc index 43461aae..d3d2d0cf 100644 --- a/dcmjpeg/libsrc/djcodece.cc +++ b/dcmjpeg/libsrc/djcodece.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2001-2015, OFFIS e.V. + * Copyright (C) 2001-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -515,7 +515,7 @@ OFCondition DJCodecEncoder::encodeTrueLossless( } /* Set and check photometric interpretation (up to now: EPI_RGB) - * Only photometric interpretations, that are explicetly "supported" by the + * Only photometric interpretations, that are explicitly "supported" by the * IJG lib are set. For all others "unknown" is set. Some are even rejected here. */ if (photometricInterpretation == "MONOCHROME1") @@ -929,7 +929,7 @@ OFCondition DJCodecEncoder::encodeMonochromeImage( if (result.good()) result = adjustOverlays(dataset, dimage); // VOI transformations should only be applied on the dataset level, not - // in nested items such as the Icon Image Sequence where we don't exect + // in nested items such as the Icon Image Sequence where we don't expect // a VOI window or LUT to be present size_t windowType = 0; if (dataset->ident() == EVR_dataset) @@ -958,7 +958,7 @@ OFCondition DJCodecEncoder::encodeMonochromeImage( if (classUID && ! cp->getConvertToSC()) { // these three SOP classes use the X-Ray Image Module in which the meaning - // of the Modality LUT transformation is "inversersed" and, therefore, + // of the Modality LUT transformation is "inversed" and, therefore, // needs special handling. This is not an issue if we're converting to // secondary capture anyway. if ((0 == strcmp(classUID, UID_XRayAngiographicImageStorage)) || @@ -1415,7 +1415,7 @@ OFCondition DJCodecEncoder::togglePlanarConfiguration8( const Uint16 samplesPerPixel, const Uint16 oldPlanarConfig) { - if ( (pixelData == NULL) ) + if (pixelData == NULL) return EC_IllegalParameter; // allocate target buffer Uint8* px8 = new Uint8[numValues]; @@ -1451,7 +1451,7 @@ OFCondition DJCodecEncoder::togglePlanarConfiguration16( const Uint16 samplesPerPixel, const Uint16 oldPlanarConfig) { - if ( (pixelData == NULL) ) + if (pixelData == NULL) return EC_IllegalParameter; // allocate target buffer Uint16* px16 = new Uint16[numValues]; diff --git a/dcmjpls/libcharls/decodstr.h b/dcmjpls/libcharls/decodstr.h index 772af6fc..d892c5ef 100644 --- a/dcmjpls/libcharls/decodstr.h +++ b/dcmjpls/libcharls/decodstr.h @@ -19,10 +19,13 @@ class DecoderStrategy public: DecoderStrategy(const JlsParameters& info) : _info(info), - _processLine(0), + _processLine(0), _readCache(0), _validBits(0), - _position(0) + _position(0), + _size(0), + _current_offset(0), + _nextFFPosition(0) { } @@ -31,14 +34,15 @@ public: } virtual void SetPresets(const JlsCustomParameters& presets) = 0; - virtual size_t DecodeScan(void* outputData, const JlsRect& size, const void* compressedData, size_t byteCount, bool bCheck) = 0; + virtual size_t DecodeScan(void* outputData, const JlsRect& size, BYTE **buf, size_t *buf_size, size_t offset, bool bCheck) = 0; - void Init(BYTE* compressedBytes, size_t byteCount) + void Init(BYTE **ptr, size_t *size, size_t offset) { _validBits = 0; _readCache = 0; - _position = compressedBytes; - _endPosition = compressedBytes + byteCount; + _position = ptr; + _size = size; + _current_offset = offset; _nextFFPosition = FindNextFF(); MakeValid(); } @@ -61,11 +65,11 @@ public: void EndScan() { - if ((*_position) != 0xFF) + if (current_value() != 0xFF) { ReadBit(); - if ((*_position) != 0xFF) + if (current_value() != 0xFF) throw JlsException(TooMuchCompressedData); } @@ -77,11 +81,11 @@ public: inlinehint bool OptimizedRead() { // Easy & fast: if there is no 0xFF byte in sight, we can read without bitstuffing - if (_position < _nextFFPosition - (sizeof(bufType)-1)) + if (_current_offset < _nextFFPosition - (sizeof(bufType)-1)) { - _readCache |= FromBigEndian::Read(_position) >> _validBits; + _readCache |= FromBigEndian::Read(*_position + _current_offset) >> _validBits; int bytesToRead = (bufferbits - _validBits) >> 3; - _position += bytesToRead; + _current_offset += bytesToRead; _validBits += bytesToRead * 8; ASSERT(_validBits >= bufferbits - 8); return true; @@ -104,7 +108,7 @@ public: do { - if (_position >= _endPosition) + if (_current_offset >= *_size) { if (_validBits <= 0) throw JlsException(InvalidCompressedData); @@ -112,12 +116,12 @@ public: return; } - bufType valnew = _position[0]; + bufType valnew = current_value(); if (valnew == 0xFF) { // JPEG bitstream rule: no FF may be followed by 0x80 or higher - if (_position == _endPosition - 1 || (_position[1] & 0x80) != 0) + if (_current_offset == *_size - 1 || ((*_position)[_current_offset + 1] & 0x80) != 0) { if (_validBits <= 0) throw JlsException(InvalidCompressedData); @@ -127,7 +131,7 @@ public: } _readCache |= valnew << (bufferbits - 8 - _validBits); - _position += 1; + _current_offset += 1; _validBits += 8; if (valnew == 0xFF) @@ -143,39 +147,39 @@ public: } - BYTE* FindNextFF() + size_t FindNextFF() { - BYTE* pbyteNextFF = _position; + size_t off = _current_offset; - while (pbyteNextFF < _endPosition) + while (off < *_size) { - if (*pbyteNextFF == 0xFF) + if ((*_position)[off] == 0xFF) { break; } - pbyteNextFF++; + off++; } - return pbyteNextFF; + return off; } - BYTE* GetCurBytePos() const + BYTE *GetCurBytePos() const { LONG validBits = _validBits; - BYTE* compressedBytes = _position; + size_t off = _current_offset; for (;;) { - LONG cbitLast = compressedBytes[-1] == 0xFF ? 7 : 8; + LONG cbitLast = (*_position)[off - 1] == 0xFF ? 7 : 8; if (validBits < cbitLast ) - return compressedBytes; + return (*_position) + off; validBits -= cbitLast; - compressedBytes--; - } + off--; + } } @@ -273,12 +277,18 @@ protected: OFauto_ptr _processLine; private: + BYTE current_value() const + { + return (*_position)[_current_offset]; + } + // decoding bufType _readCache; LONG _validBits; - BYTE* _position; - BYTE* _nextFFPosition; - BYTE* _endPosition; + BYTE **_position; + size_t *_size; + size_t _current_offset; + size_t _nextFFPosition; }; diff --git a/dcmjpls/libcharls/encodstr.h b/dcmjpls/libcharls/encodstr.h index ecc823cc..786754e4 100644 --- a/dcmjpls/libcharls/encodstr.h +++ b/dcmjpls/libcharls/encodstr.h @@ -5,7 +5,11 @@ #ifndef CHARLS_ENCODERSTRATEGY #define CHARLS_ENCODERSTRATEGY +#define INCLUDE_NEW +#include "dcmtk/ofstd/ofstdinc.h" + #include "dcmtk/ofstd/ofaptr.h" +#include "dcmtk/ofstd/ofbmanip.h" #include "procline.h" #include "decodstr.h" @@ -42,16 +46,17 @@ public: virtual void SetPresets(const JlsCustomParameters& presets) = 0; - virtual size_t EncodeScan(const void* pvoid, void* pvoidOut, size_t byteCount, void* pvoidCompare) = 0; + virtual size_t EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare) = 0; protected: - void Init(BYTE* compressedBytes, size_t byteCount) + void Init(BYTE **ptr, size_t *size, size_t offset) { bitpos = 32; valcurrent = 0; - _position = compressedBytes; - _compressedLength = byteCount; + _position = ptr; + _size = size; + _current_offset = offset; } @@ -114,22 +119,18 @@ protected: if (_isFFWritten) { // JPEG-LS requirement (T.87, A.1) to detect markers: after a xFF value a single 0 bit needs to be inserted. - *_position = BYTE(valcurrent >> 25); - valcurrent = valcurrent << 7; - bitpos += 7; + write(BYTE(valcurrent >> 25)); + valcurrent = valcurrent << 7; + bitpos += 7; _isFFWritten = false; } else { - *_position = BYTE(valcurrent >> 24); + write(BYTE(valcurrent >> 24)); + _isFFWritten = (*_position)[_current_offset - 1] == 0xFF; valcurrent = valcurrent << 8; - bitpos += 8; - _isFFWritten = *_position == 0xFF; + bitpos += 8; } - - _position++; - _compressedLength--; - _bytesWritten++; } @@ -153,13 +154,45 @@ protected: JlsParameters _info; OFauto_ptr _processLine; private: + static BYTE *re_alloc(BYTE *old_ptr, size_t *old_size) + { + size_t new_size = *old_size * 2; +#ifdef HAVE_STD__NOTHROW + BYTE *new_ptr = new(std::nothrow) BYTE[new_size]; +#else + BYTE *new_ptr = new BYTE[new_size]; +#endif + if (new_ptr == NULL) { + throw alloc_fail(); + } + + OFBitmanipTemplate::copyMem(old_ptr, new_ptr, *old_size); + + delete[] old_ptr; + + *old_size = new_size; + + return new_ptr; + } + + void write(BYTE value) + { + if (_current_offset == *_size) { + *_position = re_alloc(*_position, _size); + } + + (*_position)[_current_offset] = value; + ++_current_offset; + ++_bytesWritten; + } unsigned int valcurrent; LONG bitpos; - size_t _compressedLength; // encoding - BYTE* _position; + BYTE **_position; + size_t *_size; + size_t _current_offset; bool _isFFWritten; size_t _bytesWritten; diff --git a/dcmjpls/libcharls/header.cc b/dcmjpls/libcharls/header.cc index 11c3879b..f7c3dd17 100644 --- a/dcmjpls/libcharls/header.cc +++ b/dcmjpls/libcharls/header.cc @@ -145,9 +145,7 @@ JpegSegment* CreateMarkerStartOfFrame(Size size, LONG bitsPerSample, LONG ccomp) // JLSOutputStream::JLSOutputStream() : _bCompare(false), - _pdata(NULL), - _cbyteOffset(0), - _cbyteLength(0), + _cbytesWritten(0), _icompLast(0) { } @@ -194,12 +192,14 @@ void JLSOutputStream::AddColorTransform(int i) // // Write() // -size_t JLSOutputStream::Write(BYTE* pdata, size_t cbyteLength) +size_t JLSOutputStream::Write(BYTE **ptr, size_t *size, size_t offset) { - _pdata = pdata; - _cbyteLength = cbyteLength; + _position = ptr; + _size = size; + _current_offset = offset; WriteByte(0xFF); + WriteByte(JPEG_SOI); for (size_t i = 0; i < _segments.size(); ++i) @@ -212,7 +212,7 @@ size_t JLSOutputStream::Write(BYTE* pdata, size_t cbyteLength) WriteByte(0xFF); WriteByte(JPEG_EOI); - return _cbyteOffset; + return _cbytesWritten; } @@ -531,7 +531,9 @@ void JLSInputStream::ReadScan(void* pvout) { OFauto_ptr qcodec = JlsCodecFactory().GetCodec(_info, _info.custom); - _cbyteOffset += qcodec->DecodeScan(pvout, _rect, _pdata + _cbyteOffset, _cbyteLength - _cbyteOffset, _bCompare); + BYTE **ptr = (BYTE **)&_pdata; + size_t *size = &_cbyteLength; + _cbyteOffset += qcodec->DecodeScan(pvout, _rect, ptr, size, _cbyteOffset, _bCompare); } @@ -551,8 +553,8 @@ public: JlsParameters info = _info; info.components = _ccompScan; OFauto_ptr qcodec =JlsCodecFactory().GetCodec(info, _info.custom); - size_t cbyteWritten = qcodec->EncodeScan((BYTE*)_pvoidRaw, pstream->GetPos(), pstream->GetLength(), pstream->_bCompare ? pstream->GetPos() : NULL); - pstream->Seek(cbyteWritten); + size_t cbyteWritten = qcodec->EncodeScan((BYTE*)_pvoidRaw, pstream->get_pos(), pstream->get_size(), pstream->get_offset(), pstream->_bCompare); + pstream->seek(cbyteWritten); } diff --git a/dcmjpls/libcharls/intrface.cc b/dcmjpls/libcharls/intrface.cc index 91f75f1e..be797404 100644 --- a/dcmjpls/libcharls/intrface.cc +++ b/dcmjpls/libcharls/intrface.cc @@ -37,13 +37,37 @@ JLS_ERROR CheckInput(const void* compressedData, size_t compressedLength, const return CheckParameterCoherent(pparams); } +JLS_ERROR CheckInput(const void* uncompressedData, size_t uncompressedLength, const JlsParameters* pparams) +{ + if (pparams == NULL) + return InvalidJlsParameters; + + if (uncompressedData == NULL) + return InvalidJlsParameters; + + if (pparams->width < 1 || pparams->width > 65535) + return ParameterValueNotSupported; + + if (pparams->height < 1 || pparams->height > 65535) + return ParameterValueNotSupported; + + int bytesperline = pparams->bytesperline < 0 ? -pparams->bytesperline : pparams->bytesperline; + + if (uncompressedLength < size_t(bytesperline * pparams->height)) + return InvalidJlsParameters; + + return CheckParameterCoherent(pparams); +} + extern "C" { -CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedLength, size_t* pcbyteWritten, const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams) +CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(BYTE **buf, size_t *buf_size, size_t* pcbyteWritten, const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams) { + *pcbyteWritten = 0; + JlsParameters info = *pparams; if(info.bytesperline == 0) { @@ -54,7 +78,7 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedL } } - JLS_ERROR parameterError = CheckInput(compressedData, compressedLength, uncompressedData, uncompressedLength, &info); + JLS_ERROR parameterError = CheckInput(uncompressedData, uncompressedLength, &info); if (parameterError != OK) return parameterError; @@ -86,9 +110,15 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedL stream.AddScan(uncompressedData, &info); } - - stream.Write((BYTE*)compressedData, compressedLength); - + try + { + stream.Write(buf, buf_size, 0); + } + catch (const alloc_fail&) + { + return MemoryAllocationFailure; + } + *pcbyteWritten = stream.GetBytesWritten(); return OK; } @@ -169,14 +199,23 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsVerifyEncode(const void* uncompressedData, size { stream.AddScan(uncompressedData, &info); } - - OFVector rgbyteCompressed(compressedLength + 16); - - memcpy(&rgbyteCompressed[0], compressedData, compressedLength); + size_t buf_size = compressedLength + 16; + BYTE *buf = new BYTE[buf_size]; + + memcpy(buf, compressedData, compressedLength); + stream.EnableCompare(true); - stream.Write(&rgbyteCompressed[0], compressedLength); - + + try + { + stream.Write(&buf, &buf_size, 0); + } + catch (const alloc_fail&) + { + return MemoryAllocationFailure; + } + return OK; } diff --git a/dcmjpls/libcharls/intrface.h b/dcmjpls/libcharls/intrface.h index 5272affc..c8fdaa90 100644 --- a/dcmjpls/libcharls/intrface.h +++ b/dcmjpls/libcharls/intrface.h @@ -25,8 +25,8 @@ extern "C" { #endif - CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedLength, size_t* pcbyteWritten, - const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams); + CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsEncode(BYTE **ptr, size_t *size, size_t* pcbyteWritten, + const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams); CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsDecode(void* uncompressedData, size_t uncompressedLength, const void* compressedData, size_t compressedLength, diff --git a/dcmjpls/libcharls/pubtypes.h b/dcmjpls/libcharls/pubtypes.h index 612738cd..9e2fd48a 100644 --- a/dcmjpls/libcharls/pubtypes.h +++ b/dcmjpls/libcharls/pubtypes.h @@ -17,7 +17,8 @@ enum JLS_ERROR TooMuchCompressedData, ImageTypeNotSupported, UnsupportedBitDepthForTransform, - UnsupportedColorTransform + UnsupportedColorTransform, + MemoryAllocationFailure }; diff --git a/dcmjpls/libcharls/scan.h b/dcmjpls/libcharls/scan.h index 589e299b..5cd25151 100644 --- a/dcmjpls/libcharls/scan.h +++ b/dcmjpls/libcharls/scan.h @@ -262,15 +262,15 @@ public: void DoLine(SAMPLE* pdummy); void DoLine(Triplet* pdummy); - void DoScan(BYTE* compressedBytes, size_t compressedLength); + void DoScan(BYTE **ptr, size_t *size, size_t offset); public: ProcessLine* CreateProcess(void* pvoidOut); void InitDefault(); void InitParams(LONG t1, LONG t2, LONG t3, LONG nReset); - size_t EncodeScan(const void* rawData, void* pvoidOut, size_t compressedLength, void* pvoidCompare); - size_t DecodeScan(void* rawData, const JlsRect& size, const void* compressedData, size_t compressedLength, bool bCompare); + size_t EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare); + size_t DecodeScan(void* rawData, const JlsRect& size, BYTE **buf, size_t *buf_size, size_t offset, bool bCompare); protected: // codec parameters @@ -698,11 +698,11 @@ void JlsCodec::DoLine(Triplet*) // In ILV_NONE mode, DoScan is called for each component template -void JlsCodec::DoScan(BYTE* compressedBytes, size_t compressedLength) +void JlsCodec::DoScan(BYTE **ptr, size_t *size, size_t offset) { _width = Info().width; - STRATEGY::Init(compressedBytes, compressedLength); + STRATEGY::Init(ptr, size, offset); LONG pixelstride = _width + 4; int components = Info().ilv == ILV_LINE ? Info().components : 1; @@ -788,19 +788,17 @@ ProcessLine* JlsCodec::CreateProcess(void* pvoidOut) // Setup codec for encoding and calls DoScan template -size_t JlsCodec::EncodeScan(const void* rawData, void* compressedData, size_t compressedLength, void* pvoidCompare) +size_t JlsCodec::EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare) { STRATEGY::_processLine = OFauto_ptr(CreateProcess(const_cast(rawData))); - - BYTE* compressedBytes = static_cast(compressedData); - if (pvoidCompare != NULL) + if (compare) { - STRATEGY::_qdecoder = OFauto_ptr(new JlsCodec(traits, Info())); - STRATEGY::_qdecoder->Init((BYTE*)pvoidCompare, compressedLength); + STRATEGY::_qdecoder = OFauto_ptr(new JlsCodec(traits, Info())); + STRATEGY::_qdecoder->Init(ptr, size, offset); } - DoScan(compressedBytes, compressedLength); + DoScan(ptr, size, offset); return STRATEGY::GetLength(); @@ -809,17 +807,16 @@ size_t JlsCodec::EncodeScan(const void* rawData, void* compress // Setup codec for decoding and calls DoScan template -size_t JlsCodec::DecodeScan(void* rawData, const JlsRect& rect, const void* compressedData, size_t compressedLength, bool bCompare) +size_t JlsCodec::DecodeScan(void* rawData, const JlsRect& rect, BYTE **ptr, size_t *size, size_t offset, bool bCompare) { STRATEGY::_processLine = OFauto_ptr(CreateProcess(rawData)); - BYTE* compressedBytes = const_cast(static_cast(compressedData)); _bCompare = bCompare; BYTE rgbyte[20]; size_t readBytes = 0; - ::memcpy(rgbyte, compressedBytes, 4); + ::memcpy(rgbyte, *ptr + offset + readBytes, 4); readBytes += 4; size_t cbyteScanheader = rgbyte[3] - 2; @@ -827,14 +824,14 @@ size_t JlsCodec::DecodeScan(void* rawData, const JlsRect& rect, if (cbyteScanheader > sizeof(rgbyte)) throw JlsException(InvalidCompressedData); - ::memcpy(rgbyte, compressedBytes, cbyteScanheader); + ::memcpy(rgbyte, *ptr + offset + readBytes, cbyteScanheader); readBytes += cbyteScanheader; _rect = rect; - DoScan(compressedBytes + readBytes, compressedLength - readBytes); + DoScan(ptr, size, offset + readBytes); - return STRATEGY::GetCurBytePos() - compressedBytes; + return STRATEGY::GetCurBytePos() - (*ptr + offset); } // Initialize the codec data structures. Depends on JPEG-LS parameters like T1-T3. diff --git a/dcmjpls/libcharls/streams.h b/dcmjpls/libcharls/streams.h index ea8e8ceb..a2ef422c 100644 --- a/dcmjpls/libcharls/streams.h +++ b/dcmjpls/libcharls/streams.h @@ -4,6 +4,9 @@ #ifndef CHARLS_STREAMS #define CHARLS_STREAMS +#define INCLUDE_NEW +#include "dcmtk/ofstd/ofstdinc.h" + #include "dcmtk/ofstd/ofvector.h" #include "dcmtk/ofstd/ofbmanip.h" #include "util.h" @@ -48,24 +51,30 @@ public: void AddLSE(const JlsCustomParameters* pcustom); void AddColorTransform(int i); size_t GetBytesWritten() - { return _cbyteOffset; } + { return _cbytesWritten; } - size_t GetLength() - { return _cbyteLength - _cbyteOffset; } + size_t Write(BYTE **ptr, size_t *size, size_t offset); + + BYTE **get_pos() { return _position; } + + size_t *get_size() { return _size; } + + size_t get_offset() { return _current_offset; } - size_t Write(BYTE* pdata, size_t cbyteLength); - void EnableCompare(bool bCompare) { _bCompare = bCompare; } private: - BYTE* GetPos() const - { return _pdata + _cbyteOffset; } - void WriteByte(BYTE val) { - ASSERT(!_bCompare || _pdata[_cbyteOffset] == val); + ASSERT(!_bCompare || (*_position)[_current_offset] == val); - _pdata[_cbyteOffset++] = val; + if (_current_offset == *_size) { + *_position = re_alloc(*_position, _size); + } + + (*_position)[_current_offset++] = val; + + _cbytesWritten++; } void WriteBytes(const OFVector& rgbyte) @@ -82,16 +91,40 @@ private: WriteByte(BYTE(val % 0x100)); } - - void Seek(size_t byteCount) - { _cbyteOffset += byteCount; } + void seek(size_t n) + { + _cbytesWritten += n; + _current_offset += n; + } bool _bCompare; private: - BYTE* _pdata; - size_t _cbyteOffset; - size_t _cbyteLength; + static BYTE *re_alloc(BYTE *old_ptr, size_t *old_size) + { + size_t new_size = *old_size * 2; +#ifdef HAVE_STD__NOTHROW + BYTE *new_ptr = new BYTE[new_size]; +#else + BYTE *new_ptr = new BYTE[new_size]; +#endif + if (new_ptr == NULL) { + throw alloc_fail(); + } + + OFBitmanipTemplate::copyMem(old_ptr, new_ptr, *old_size); + + delete[] old_ptr; + + *old_size = new_size; + + return new_ptr; + } + + BYTE **_position; + size_t *_size; + size_t _current_offset; + size_t _cbytesWritten; LONG _icompLast; OFVector _segments; }; diff --git a/dcmjpls/libcharls/util.h b/dcmjpls/libcharls/util.h index b2a02a4a..4b39704f 100644 --- a/dcmjpls/libcharls/util.h +++ b/dcmjpls/libcharls/util.h @@ -22,6 +22,7 @@ #define ABS(a) (((a) > 0) ? (a) : -(a)) #endif +class alloc_fail { }; inline LONG log_2(LONG n) { diff --git a/dcmjpls/libsrc/djcodece.cc b/dcmjpls/libsrc/djcodece.cc index 261fec82..64686ff0 100644 --- a/dcmjpls/libsrc/djcodece.cc +++ b/dcmjpls/libsrc/djcodece.cc @@ -657,24 +657,20 @@ OFCondition DJLSEncoderBase::compressRawFrame( if (result.good()) { - // We have no idea how big the compressed pixel data will be and we have no - // way to find out, so we just allocate a buffer large enough for the raw data - // plus a little more for JPEG metadata. - // Yes, this is way too much for just a little JPEG metadata, but some - // test-images showed that the buffer previously was too small. Plus, at some - // places charls fails to do proper bounds checking and writes behind the end - // of the buffer (sometimes way behind its end...). + // The buffer is going to be dynamically reallocated if it's too small, so it doesn't matter that + // much what initial size we use. size_t size = frameSize + 1024; - Uint8 *buffer = new Uint8[size]; + BYTE *buffer = new BYTE[size]; - JLS_ERROR err = JpegLsEncode(buffer, size, &size, framePointer, frameSize, &jls_params); + size_t bytesWritten = 0; + + JLS_ERROR err = JpegLsEncode(&buffer, &size, &bytesWritten, framePointer, frameSize, &jls_params); result = DJLSError::convert(err); if (result.good()) { - // 'size' now contains the size of the compressed data in buffer - compressedSize = size; - result = pixelSequence->storeCompressedFrame(offsetList, buffer, size, fragmentSize); + compressedSize = bytesWritten; + result = pixelSequence->storeCompressedFrame(offsetList, buffer, compressedSize, fragmentSize); } delete[] buffer; @@ -1053,25 +1049,19 @@ OFCondition DJLSEncoderBase::compressCookedFrame( result = convertToUninterleaved(frameBuffer, buffer, samplesPerPixel, width, height, jls_params.bitspersample); } - // We have no idea how big the compressed pixel data will be and we have no - // way to find out, so we just allocate a buffer large enough for the raw data - // plus a little more for JPEG metadata. - // Yes, this is way too much for just a little JPEG metadata, but some - // test-images showed that the buffer previously was too small. Plus, at some - // places charls fails to do proper bounds checking and writes behind the end - // of the buffer (sometimes way behind its end...). size_t compressed_buffer_size = buffer_size + 1024; - Uint8 *compressed_buffer = new Uint8[compressed_buffer_size]; + BYTE *compressed_buffer = new BYTE[compressed_buffer_size]; + + size_t bytesWritten = 0; - JLS_ERROR err = JpegLsEncode(compressed_buffer, compressed_buffer_size, - &compressed_buffer_size, framePointer, buffer_size, &jls_params); + JLS_ERROR err = JpegLsEncode(&compressed_buffer, &compressed_buffer_size, &bytesWritten, framePointer, buffer_size, &jls_params); result = DJLSError::convert(err); if (result.good()) { // 'compressed_buffer_size' now contains the size of the compressed data in buffer - compressedSize = compressed_buffer_size; - result = pixelSequence->storeCompressedFrame(offsetList, compressed_buffer, compressed_buffer_size, fragmentSize); + compressedSize = bytesWritten; + result = pixelSequence->storeCompressedFrame(offsetList, compressed_buffer, compressedSize, fragmentSize); } delete[] buffer; diff --git a/dcmnet/docs/movescu.man b/dcmnet/docs/movescu.man index 02897d7b..2b1e3553 100644 --- a/dcmnet/docs/movescu.man +++ b/dcmnet/docs/movescu.man @@ -544,6 +544,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 diff --git a/dcmnet/docs/storescp.man b/dcmnet/docs/storescp.man index 1d58a38e..f1f24266 100644 --- a/dcmnet/docs/storescp.man +++ b/dcmnet/docs/storescp.man @@ -662,6 +662,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 diff --git a/dcmnet/etc/storescp.cfg b/dcmnet/etc/storescp.cfg index 03959da1..7c3e685a 100644 --- a/dcmnet/etc/storescp.cfg +++ b/dcmnet/etc/storescp.cfg @@ -206,6 +206,8 @@ PresentationContext128 = DRAFT_WaveformStorage\UncompressedOrZlib # - BreastProjectionXRayImageStorageForProcessing # - CompositingPlanarMPRVolumetricPresentationStateStorage # - ContentAssessmentResultsStorage +# - CTDefinedProcedureProtocolStorage +# - CTPerformedProcedureProtocolStorage # - ExtensibleSRStorage # - GrayscalePlanarMPRVolumetricPresentationStateStorage # - LegacyConvertedEnhancedCTImageStorage diff --git a/dcmnet/etc/storescu.cfg b/dcmnet/etc/storescu.cfg index 5b655d23..6f2a5133 100644 --- a/dcmnet/etc/storescu.cfg +++ b/dcmnet/etc/storescu.cfg @@ -211,6 +211,8 @@ PresentationContext128 = VideoPhotographicImageStorage\MPEG2 # - Comprehensive3DSRStorage # - ContentAssessmentResultsStorage # - CornealTopographyMapStorage +# - CTDefinedProcedureProtocolStorage +# - CTPerformedProcedureProtocolStorage # - DeformableSpatialRegistrationStorage # - EncapsulatedCDAStorage # - EnhancedMRColorImageStorage diff --git a/dcmnet/libsrc/dstorscu.cc b/dcmnet/libsrc/dstorscu.cc index 27b7b220..c93f1756 100644 --- a/dcmnet/libsrc/dstorscu.cc +++ b/dcmnet/libsrc/dstorscu.cc @@ -929,6 +929,8 @@ OFCondition DcmStorageSCU::sendSOPInstances() void DcmStorageSCU::notifySOPInstanceToBeSent(const TransferEntry &transferEntry) { + // avoid compiler warning + (void)transferEntry; // do nothing in the default implementation } diff --git a/dcmnet/libsrc/dulparse.cc b/dcmnet/libsrc/dulparse.cc index 8a10d323..0a7d3e0e 100644 --- a/dcmnet/libsrc/dulparse.cc +++ b/dcmnet/libsrc/dulparse.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 1994-2015, OFFIS e.V. + * Copyright (C) 1994-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were partly developed by @@ -466,7 +466,7 @@ parseUserInfo(DUL_USERINFO * userInfo, userInfo->type = *buf++; // skip unused ("reserved") field userInfo->rsv1 = *buf++; - // get and remeber announced length of user data + // get and remember announced length of user data EXTRACT_SHORT_BIG(buf, userInfo->length); // .. and skip over the two length field bytes buf += 2; @@ -838,7 +838,7 @@ makeUnderflowError(const char *pdu, unsigned long minuend, unsigned long subtrahend) { OFStringStream stream; - stream << "DUL Illegal " << pdu << ". Got " << minuend << " bytes of data and told to subtrat " << subtrahend << " bytes of data"; + stream << "DUL Illegal " << pdu << ". Got " << minuend << " bytes of data and told to subtract " << subtrahend << " bytes of data"; stream << "." << OFStringStream_ends; OFCondition ret; diff --git a/dcmpmap/CMakeLists.txt b/dcmpmap/CMakeLists.txt new file mode 100644 index 00000000..5871a54c --- /dev/null +++ b/dcmpmap/CMakeLists.txt @@ -0,0 +1,10 @@ +# declare project +PROJECT(dcmpmaps) + +# declare include directories which hold for all subdirectories +INCLUDE_DIRECTORIES(${dcmpmaps_SOURCE_DIR}/include ${dcmfg_SOURCE_DIR}/include ${dcmiod_SOURCE_DIR}/include ${dcmdata_SOURCE_DIR}/include ${ofstd_SOURCE_DIR}/include ${oflog_SOURCE_DIR}/include ${ZLIB_INCDIR}) + +# recurse into subdirectories +FOREACH(SUBDIR libsrc include) + ADD_SUBDIRECTORY(${SUBDIR}) +ENDFOREACH(SUBDIR) diff --git a/dcmpmap/Makefile.in b/dcmpmap/Makefile.in new file mode 100644 index 00000000..49fda781 --- /dev/null +++ b/dcmpmap/Makefile.in @@ -0,0 +1,86 @@ +# +# Makefile for dcmpmaps +# + +@SET_MAKE@ + +SHELL = /bin/sh +VPATH = @srcdir@:@top_srcdir@/include:@top_srcdir@/@configdir@/include +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: include-all libsrc-all tests-all + +install: install-doc install-support + +install-doc: docs-install + +install-data: data-install + +install-etc: etc-install + +install-include: include-install + +install-lib: libsrc-install install-include + +install-support: install-data install-etc + + +include-all: + (cd include && $(MAKE) ARCH="$(ARCH)" all) + +libsrc-all: include-all + (cd libsrc && $(MAKE) ARCH="$(ARCH)" all) + +tests-all: libsrc-all + (cd tests && $(MAKE) ARCH="$(ARCH)" all) + + +check: tests-all + (cd tests && $(MAKE) check) + +check-exhaustive: tests-all + (cd tests && $(MAKE) check-exhaustive) + + +include-install: + (cd include && $(MAKE) ARCH="$(ARCH)" install) + +libsrc-install: libsrc-all + (cd libsrc && $(MAKE) ARCH="$(ARCH)" install) + +docs-install: + (cd docs && $(MAKE) install) + +data-install: + (cd data && $(MAKE) install) + +etc-install: + (cd etc && $(MAKE) install) + + +clean: + (cd include && $(MAKE) clean) + (cd libsrc && $(MAKE) clean) + (cd tests && $(MAKE) clean) + (cd docs && $(MAKE) clean) + (cd data && $(MAKE) clean) + (cd etc && $(MAKE) clean) + rm -f $(TRASH) + +distclean: + (cd include && $(MAKE) distclean) + (cd libsrc && $(MAKE) distclean) + (cd tests && $(MAKE) distclean) + (cd docs && $(MAKE) distclean) + (cd data && $(MAKE) distclean) + (cd etc && $(MAKE) distclean) + rm -f $(DISTTRASH) + +dependencies: + (cd libsrc && touch $(DEP) && $(MAKE) dependencies) + (cd tests && touch $(DEP) && $(MAKE) dependencies) diff --git a/dcmpmap/configure b/dcmpmap/configure new file mode 100755 index 00000000..3877a6a1 --- /dev/null +++ b/dcmpmap/configure @@ -0,0 +1,53 @@ +#! /bin/sh + +parentdir=`pwd` +thisdir=$parentdir + +# The following test constructs relative path from the module +# directory to the configuration directory. If you know this path +# you can substitute this with +# configdir= +# It is very important that the configdir path is relative. + +configdir="configdir" + +while test "$parentdir" != "/" -a "$configdir" = "configdir"; do + if test -d "$parentdir/config" ; then + configdir=$parentdir/config + else + parentdir=`echo $parentdir | sed 's/\/[^\/]*$//'` + fi +done + +if test "$configdir" = "configdir" ; then + echo "Cannot find configure directory" + exit 1 +fi + +if test $# != 0; then + case $1 in + -a) + shift + cd "$configdir" + echo "running configure in config-directory" + ./configure $* + cd $thisdir + echo "running configure for this module" + sh "$configdir/confmod" --srcdir=. $* + ;; + -c) + shift + cd "$configdir" + echo "running configure in config-directory" + ./configure $* + ;; + *) + echo "running configure for this module" + sh "$configdir/confmod" --srcdir=. $* + ;; + esac +else + echo "running configure for this module" + sh "$configdir/confmod" --srcdir=. $* +fi + diff --git a/dcmpmap/data/Makefile.in b/dcmpmap/data/Makefile.in new file mode 100644 index 00000000..fb38e304 --- /dev/null +++ b/dcmpmap/data/Makefile.in @@ -0,0 +1,23 @@ +# +# Makefile for dcmpmap/data +# + +@SET_MAKE@ + +SHELL = /bin/sh +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: + +install: + +clean: + rm -f $(TRASH) + +distclean: + rm -f $(DISTTRASH) diff --git a/dcmpmap/docs/Makefile.in b/dcmpmap/docs/Makefile.in new file mode 100644 index 00000000..80daadea --- /dev/null +++ b/dcmpmap/docs/Makefile.in @@ -0,0 +1,23 @@ +# +# Makefile for dcmpmap/docs +# + +@SET_MAKE@ + +SHELL = /bin/sh +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: + +install: + +clean: + rm -f $(TRASH) + +distclean: + rm -f $(DISTTRASH) diff --git a/dcmpmap/docs/dcmpmap.dox b/dcmpmap/docs/dcmpmap.dox new file mode 100644 index 00000000..1bffad21 --- /dev/null +++ b/dcmpmap/docs/dcmpmap.dox @@ -0,0 +1,527 @@ +/*! + +\page mod_dcmpmap dcmpmap: a library for working with parametric map objects + +This module contains classes to create, load, access and store DICOM Parametric +Map objects, which have originally been introduced to the DICOM standard with +Supplement +172 in 2014. + +In the standard, the data inside each Parametric Map object must rely on one of +these data types: + +\li 16 bit unsigned integer +\li 16 bit signed integer +\li 32 bit floating point +\li 64 bit floating point + +All of them are supported by the dcmpmap library. + +The main class of this module is: +\li \b DPMParametricMapIOD + +This module makes heavy use of the \ref mod_dcmiod "dcmiod" module for managing +common IOD attributes and the \ref mod_dcmfg "dcmfg" module for functional group +support. Read the "Examples" sections for more explanations. + +\section Examples + +The following two examples show: +\li How to access and dump information (including the binary data values) from a +Parametric Map object +\li and how to use the API to create such an object yourself. + +\subsection example_dump Dumping information from Parametric Map + +The Parametric Map class uses a template in order to instantiate the correct +pixel data type internally, and to offer a dedicated API for that type. Allowed +types are Uint16, Sint16, Float32 and Float64. + +Since internally the data types are handled in a C++ Variant, the usual concept +to "switch" between these types in code is to use a Visitor which overloads the +operator "()" for each data type that can occur in the Variant. This concept is +also demonstrated below where the type of pixel data is printed. + +The rest of the code uses the API of the \ref mod_dcmiod "dcmiod" and +\ref mod_dcmfg "dcmfg" module in order to get basic information about Patient, +Study, Series and Instance, as well as functional group information, especially +the Real World Value Mapping defined in the file. + +\code +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ +#include "dcmtk/dcmpmap/dpmparametricmapiod.h" + +static void dumpRWVM(const unsigned long frameNumber, + FGInterface& fg) +{ + FGRealWorldValueMapping* rw = OFstatic_cast(FGRealWorldValueMapping*, fg.get(frameNumber, DcmFGTypes::EFG_REALWORLDVALUEMAPPING)); + if (rw) + { + size_t numMappings = rw->getRealWorldValueMapping().size(); + COUT << " Number of Real World Value Mappings defined: " << numMappings << OFendl; + for (size_t m = 0; m < numMappings; m++) + { + FGRealWorldValueMapping::RWVMItem* item = rw->getRealWorldValueMapping()[m]; + OFString label, expl; + item->getLUTLabel(label); + item->getLUTExplanation(expl); + COUT << " RWVM Mapping #" << m << ":" << OFendl; + COUT << " LUT Label: << " << label << OFendl; + COUT << " LUT Explanation: " << expl << OFendl; + COUT << " Measurement Units Code: " << item->getMeasurementUnitsCode().toString() << OFendl; + size_t numQuant = item->getEntireQuantityDefinitionSequence().size(); + if (numQuant > 0) + { + COUT << " Number of Quantities defined: " << numQuant << OFendl; + for (size_t q = 0; q < numQuant; q++) + { + ContentItemMacro* macro = item->getEntireQuantityDefinitionSequence()[q]; + COUT << " Quantity #" << q << ": " << macro->toString() << OFendl; + } + } + } + } + else + { + CERR << " Error: No Real World Value Mappings defined for frame #" << frameNumber << OFendl; + } +} + +class DumpFramesVisitor +{ +public: + + DumpFramesVisitor(DPMParametricMapIOD* map, + const unsigned long numPerFrame) + : m_Map(map) + , m_numPerFrame(numPerFrame) + { + } + + template + OFBool operator()(DPMParametricMapIOD::Frames& frames) + { + dumpDataType(frames); + for (unsigned long f = 0; f < m_Map->getNumberOfFrames(); f++) + { + COUT << "Dumping info of frame #" << f << ":" << OFendl; + FGInterface& fg = m_Map->getFunctionalGroups(); + dumpRWVM(f, fg); + COUT << "Dumping data for frame #" << f << ": " << OFendl; + T* frame = frames.getFrame(f); + for (unsigned long p = 0; p < m_numPerFrame; p++) + { + COUT << frame[p] << " "; + } + COUT << OFendl << OFendl; + } + return 0; + } + + OFBool operator()(OFCondition& cond) + { + // Avoid compiler warning + (void)cond; + CERR << "Type of data samples not supported" << OFendl; + return OFFalse; + } + + OFBool dumpHeader(DPMParametricMapIOD::Frames& frames) + { + // Avoid compiler warning + (void)frames; + COUT << "File has 32 Bit float data" << OFendl; + return OFFalse; + } + + OFBool dumpHeader(DPMParametricMapIOD::Frames& frames) + { + // Avoid compiler warning + (void)frames; + COUT << "File has 16 Bit unsigned integer data" << OFendl; + return OFFalse; + } + + OFBool dumpHeader(DPMParametricMapIOD::Frames& frames) + { + // Avoid compiler warning + (void)frames; + COUT << "File has 16 Bit signed integer data" << OFendl; + return OFFalse; + } + + OFBool dumpHeader(DPMParametricMapIOD::Frames& frames) + { + // Avoid compiler warning + (void)frames; + COUT << "File has 64 Bit float data" << OFendl; + return OFTrue; + } + + template + OFBool dumpDataType(DPMParametricMapIOD::Frames& frames) + { + // Avoid compiler warning + (void)frames; + CERR << "Type of data samples not supported" << OFendl; + return OFFalse; + } + + DPMParametricMapIOD* m_Map; + unsigned long m_numPerFrame; + +}; + + +static void dumpGeneral(DPMParametricMapIOD& map) +{ + OFString patName, patID, studyUID, studyDate, seriesUID, modality, sopUID; + map.getPatient().getPatientName(patName); + map.getPatient().getPatientID(patID); + map.getStudy().getStudyInstanceUID(studyUID); + map.getStudy().getStudyDate(studyDate); + map.getSeries().getSeriesInstanceUID(seriesUID); + map.getSeries().getModality(modality); + map.getSOPCommon().getSOPInstanceUID(sopUID); + COUT << "Patient Name : " << patName << OFendl; + COUT << "Patient ID : " << patID << OFendl; + COUT << "Study Instance UID : " << studyUID << OFendl; + COUT << "Study Date : " << studyDate << OFendl; + COUT << "Series Instance UID: " << seriesUID << OFendl; + COUT << "SOP Instance UID : " << sopUID << OFendl; + COUT << "---------------------------------------------------------------" << OFendl; + OFBool isPerFrame; + map.getFunctionalGroups().get(0, DcmFGTypes::EFG_REALWORLDVALUEMAPPING, isPerFrame); + if (isPerFrame) + { + COUT << "Real World Value Mapping: Defined per-frame" << OFendl; + } + else + { + COUT << "Real World Value Mapping: Defined shared (i.e. single definition for all frames):" << OFendl; + } + COUT << "---------------------------------------------------------------" << OFendl; +} + + +int main (int argc, char* argv[]) +{ + // OFLog::configure(OFLogger::DEBUG_LOG_LEVEL); + OFString inputFile; + if (argc < 2) + { + CERR << "Usage: dump_pmp " << std::endl; + return 1; + } + else + { + inputFile = argv[1]; + if (!OFStandard::fileExists(inputFile)) + { + CERR << "Input file " << inputFile << " does not exist " << OFendl; + return 1; + } + } + + OFvariant result = DPMParametricMapIOD::loadFile(inputFile); + if (OFget(&result)) + { + DPMParametricMapIOD* map = *OFget(&result); + dumpGeneral(*map); + COUT << "Dumping #" << map->getNumberOfFrames() << " frames of file " << inputFile << OFendl; + Uint16 rows, cols = 0; + map->getRows(rows); + map->getColumns(cols); + unsigned long numPerFrame = rows * cols; + DPMParametricMapIOD::FramesType frames = map->getFrames(); + OFvisit(DumpFramesVisitor(map, numPerFrame), frames); + } + else + { + CERR << "Could not load parametric map: " << (*OFget(&result)).text() << OFendl; + exit(1); + } + exit(0); +} + +\endcode + + +\subsection example_create Creation of Parametric Maps + +The Parametric Map class uses a template in order to instantiate the correct +pixel data type internally, and to offer a dedicated API for that type. Allowed +types are Uint16, Sint16, Float32 and Float64. The example below demonstrates +that the API use is generally the same for all types. + +The procedure in the example (and most of it applies for the general case) is as +follows: + +\li The main() routine calls test_pmap() four times, each time using a different +Image Pixel Module as template parameter which makes sure that the right pixel +data type is used within the created Parametric Map. +\li test_pmap() demonstrates the overall steps to create the map: +\li Create a new Parametric Map by calling DPMParametricMapIOD::create() +(via create_pmap()), and then +\li add shared functional groups, +\li add dimensions, +\li and add frames with the related per-frame functional groups to the object. +\li Finally, general data regarding Patient and Study is set. +\li Note that the order of these steps in test_pmap() does not matter. + + +Per default, DPMParametricMapIOD::create() creates a new DICOM instance, within +a brand-new DICOM Series that belongs to a brand-new DICOM Study. All minimal +information for Patient, Study and Series will be set (e.g. Study, Series and +SOP Instance UID as well as other information that is handed over to the +create() call, like Series Number). Patient Name and ID are left empty per +default. + +Of course, often you might want to put the new instance into an existing Series +instead, or place the brand-new Series into an existing Study or at least assign +it to an existing Patient. The easiest way to to do that is to use the call +import() that imports Patient or even Study, Series and Frame of Reference +information from an existing file, i.e. place it under an existing Patient, +Study and/or Series. + +When adding information to the Parametric Map using the public API, some basic +checks are usually performed on the data. Finally, when calling saveFile(), some +further checks take place, e.g. validating the structure of the functional +groups or making sure that all required element values are set. + +\code + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/oftest.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmpmap/dpmparametricmapiod.h" +#include "dcmtk/dcmfg/fgpixmsr.h" +#include "dcmtk/dcmfg/fgplanpo.h" +#include "dcmtk/dcmfg/fgplanor.h" +#include "dcmtk/dcmfg/fgfracon.h" +#include "dcmtk/dcmfg/fgframeanatomy.h" +#include "dcmtk/dcmfg/fgidentpixeltransform.h" +#include "dcmtk/dcmfg/fgframevoilut.h" +#include "dcmtk/dcmfg/fgrealworldvaluemapping.h" +#include "dcmtk/dcmfg/fgparametricmapframetype.h" + +const size_t NUM_FRAMES = 10; +const Uint16 ROWS = 10; +const Uint16 COLS = 10; +const unsigned long NUM_VALUES_PER_FRAME = ROWS * COLS; + + +// Set Patient and Study example data +static void setGenericData(DPMParametricMapIOD& map) +{ + map.getPatient().setPatientName("Onken^Michael"); + map.getPatient().setPatientID("007"); + map.getStudy().setStudyDate("20160721"); + map.getStudy().setStudyTime("111200"); + map.getStudy().setStudyID("4711"); +} + + +// Create Parametric Map +template +static OFvariant create_pmap() +{ + return DPMParametricMapIOD::create + ( + "MR", // Modality + "1", // Series Number + "1", // Instance Number + ROWS, + COLS, + IODEnhGeneralEquipmentModule::EquipmentInfo("Open Connections GmbH", "make_pmp", "SN_0815", "0.1"), + ContentIdentificationMacro("1", "PARAMAP_LABEL", "Example description from test program", "Onken^Michael"), + "VOLUME", // Image Flavor + "MTT", // Derived Pixel Contrast + DPMTypes::CQ_RESEARCH // Content Qualification + ); +} + + +// Add those functional groups that are common for all frames +static OFCondition addSharedFunctionalGroups(DPMParametricMapIOD& map) +{ + FGPixelMeasures pixelMeasures; + pixelMeasures.setPixelSpacing("1\\1"); + pixelMeasures.setSliceThickness("0.1"); + pixelMeasures.setSpacingBetweenSlices("0.1"); + FGPlaneOrientationPatient planeOrientPatientFG; + planeOrientPatientFG.setImageOrientationPatient("1", "0", "0", "0", "1", "0"); + FGFrameAnatomy frameAnaFG; + frameAnaFG.setLaterality(FGFrameAnatomy::LATERALITY_UNPAIRED); + frameAnaFG.getAnatomy().getAnatomicRegion().set("T-A0100", "SRT", "Brain"); + FGIdentityPixelValueTransformation idTransFG; + FGParametricMapFrameType frameTypeFG; + frameTypeFG.setFrameType("DERIVED\\PRIMARY\\VOLUME\\MTT"); + + // Add groups to Parametric Map + OFCondition result; + if ((result = map.addForAllFrames(pixelMeasures)).good()) + if ((result = map.addForAllFrames(planeOrientPatientFG)).good()) + if ((result = map.addForAllFrames(frameAnaFG)).good()) + if ((result = map.addForAllFrames(idTransFG)).good()) + result = map.addForAllFrames(frameTypeFG); + + return result; +} + + +// Add a single dimension for demonstration purposes based on "Image Position Patient" +static OFCondition addDimensions(DPMParametricMapIOD& map) +{ + IODMultiframeDimensionModule& mod = map.getIODMultiframeDimensionModule(); + OFString dimUID = DcmIODUtil::createUID(0); + OFCondition result = mod.addDimensionIndex(DCM_ImagePositionPatient, dimUID, DCM_RealWorldValueMappingSequence, "Frame position"); + return result; +} + + +// Add one frame to parametric map. Frame number is used to compute some +// varying example data values differing from frame to frame +template +static OFCondition addFrame(DPMParametricMapIOD& map, + const unsigned long frameNo) +{ + // Create example data + + OFVector data(NUM_VALUES_PER_FRAME); + for (size_t n=0; n < data.size(); ++n) + { + data[n] = (n*frameNo+n) + (0.1 * (frameNo % 10)); + } + + Uint16 rows, cols; + OFCondition cond = map.getImagePixel().getRows(rows); + cond = map.getImagePixel().getColumns(cols); + + // Create functional groups + OFVector groups; + OFunique_ptr fgPlanePos(new FGPlanePosPatient); + OFunique_ptr fgFracon(new FGFrameContent); + OFunique_ptr fgRVWM(new FGRealWorldValueMapping()); + FGRealWorldValueMapping::RWVMItem* rvwmItemSimple = new FGRealWorldValueMapping::RWVMItem(); + if (!fgPlanePos || !fgFracon || !fgRVWM || !rvwmItemSimple ) + return EC_MemoryExhausted; + + // Fill in functional group values + + // Real World Value Mapping + rvwmItemSimple->setRealWorldValueSlope(10); + rvwmItemSimple->setRealWorldValueIntercept(0); + rvwmItemSimple->setDoubleFloatRealWorldValueFirstValueMapped(0.12345); + rvwmItemSimple->setDoubleFloatRealWorldValueLastValueMapped(98.7654); + rvwmItemSimple->getMeasurementUnitsCode().set("{counts}/s", "UCUM", "Counts per second"); + rvwmItemSimple->setLUTExplanation("We are mapping trash to junk."); + rvwmItemSimple->setLUTLabel("Just testing"); + CodeSequenceMacro* qCodeName = new CodeSequenceMacro("G-C1C6", "SRT", "Quantity"); + CodeSequenceMacro* qSpec = new CodeSequenceMacro("110805", "SRT", "T2 Weighted MR Signal Intensity"); + ContentItemMacro* quantity = new ContentItemMacro; + if (!quantity || !qSpec || !quantity) + return EC_MemoryExhausted; + quantity->getEntireConceptNameCodeSequence().push_back(qCodeName); + quantity->getEntireConceptCodeSequence().push_back(qSpec); + rvwmItemSimple->getEntireQuantityDefinitionSequence().push_back(quantity); + quantity->setValueType(ContentItemMacro::VT_CODE); + fgRVWM->getRealWorldValueMapping().push_back(rvwmItemSimple); + + // Plane Position + OFStringStream ss; + ss << frameNo; + OFSTRINGSTREAM_GETOFSTRING(ss, framestr) // convert number to string + fgPlanePos->setImagePositionPatient("0", "0", framestr); + + // Frame Content + OFCondition result = fgFracon->setDimensionIndexValues(frameNo+1 /* value within dimension */, 0 /* first dimension */); + + // Add frame wit related groups + if (result.good()) + { + // Add frame + groups.push_back(fgPlanePos.get()); + groups.push_back(fgFracon.get()); + groups.push_back(fgRVWM.get()); + groups.push_back(fgPlanePos.get()); + DPMParametricMapIOD::FramesType frames = map.getFrames(); + result = OFget >(&frames)->addFrame(&*data.begin(), NUM_VALUES_PER_FRAME, groups); + } + + return result; +} + + +// Main routine that creates Parametric Maps +template +static OFCondition test_pmap(const OFString& saveDestination) +{ + OFvariant obj = create_pmap(); + if (OFCondition* pCondition = OFget(&obj)) + return *pCondition; + + DPMParametricMapIOD& map = *OFget(&obj); + + OFCondition result; + if ((result = addSharedFunctionalGroups(map)).good()) + if ((result = addDimensions(map)).good()) + { + // Add frames (parametric map data), and per-frame functional groups + for (unsigned long f = 0; result.good() && (f < NUM_FRAMES); f++) + result = addFrame(map, f); + } + + // Set some generic data (keep dciodvfy happy on DICOMDIR warnings) + if (result.good()) + { + setGenericData(map); + } + + // Save + if (result.good()) + { + return map.saveFile(saveDestination.c_str()); + } + else + { + return result; + } +} + + +int main (int argc, char* argv[]) +{ + OFString outputDir; + if (argc < 2) + { + CERR << "Usage: make_pmp " << std::endl; + return 1; + } + else + { + outputDir = argv[1]; + if (!OFStandard::dirExists(outputDir)) + { + CERR << "Output directory " << outputDir << " does not exist " << OFendl; + return 1; + } + } + + //OFLog::configure(OFLogger::DEBUG_LOG_LEVEL); + + // Test all possible parametric map types (signed and unsigned integer, floating point + // and double floating point) + + test_pmap >(outputDir + "/uint_paramap.dcm"); + test_pmap >(outputDir + "/sint_paramap.dcm"); + test_pmap(outputDir + "/float_paramap.dcm"); + test_pmap(outputDir + "/double_paramap.dcm"); + + return 0; +} + +\endcode + +*/ diff --git a/dcmpmap/etc/Makefile.in b/dcmpmap/etc/Makefile.in new file mode 100644 index 00000000..31690d7b --- /dev/null +++ b/dcmpmap/etc/Makefile.in @@ -0,0 +1,23 @@ +# +# Makefile for dcmpmap/etc +# + +@SET_MAKE@ + +SHELL = /bin/sh +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: + +install: + +clean: + rm -f $(TRASH) + +distclean: + rm -f $(DISTTRASH) diff --git a/dcmpmap/include/CMakeLists.txt b/dcmpmap/include/CMakeLists.txt new file mode 100644 index 00000000..fc29ca7a --- /dev/null +++ b/dcmpmap/include/CMakeLists.txt @@ -0,0 +1,2 @@ +# declare installation files +INSTALL(DIRECTORY dcmtk/dcmpmap DESTINATION ${DCMTK_INSTALL_INCDIR}/dcmtk COMPONENT include FILES_MATCHING PATTERN "*.h" PATTERN "CVS" EXCLUDE) diff --git a/dcmpmap/include/Makefile.in b/dcmpmap/include/Makefile.in new file mode 100644 index 00000000..37af7030 --- /dev/null +++ b/dcmpmap/include/Makefile.in @@ -0,0 +1,27 @@ +# +# Makefile for dcmpmap/include +# + +@SET_MAKE@ + +SHELL = /bin/sh +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: + +install: + $(configdir)/mkinstalldirs $(DESTDIR)$(includedir)/dcmtk/dcmpmap + for file in dcmtk/dcmpmap/*.h ; do \ + $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/dcmtk/dcmpmap ;\ + done + +clean: + rm -f $(TRASH) + +distclean: + rm -f $(DISTTRASH) diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h b/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h new file mode 100644 index 00000000..82f89c09 --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h @@ -0,0 +1,37 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Michael Onken + * + * Purpose: Contains preprocessor definitions + * + */ + + +#ifndef DPMDEF_H +#define DPMDEF_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofdefine.h" + +// definitions for DLL/shared library exports + +#ifdef dcmpmap_EXPORTS +#define DCMTK_DCMPMAP_EXPORT DCMTK_DECL_EXPORT +#else +#define DCMTK_DCMPMAP_EXPORT DCMTK_DECL_IMPORT +#endif + +#endif // DPMDEF_H diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h new file mode 100644 index 00000000..0da18dee --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h @@ -0,0 +1,304 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Image Module + * + */ + +#ifndef DPMMODPARAMETRICMAPIMAGE_H +#define DPMMODPARAMETRICMAPIMAGE_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofmem.h" +#include "dcmtk/dcmiod/iodrules.h" +#include "dcmtk/dcmiod/modbase.h" +#include "dcmtk/dcmpmap/dpmdef.h" + +/** Class representing the Parametric Map Image Module: + * + * ImageType: (CS, 2-n, 1) + * SamplesPerPixel: (US, 1, 1) + * PhotometricInterpretation: (CS, 1, 1) + * BitsAllocated: (US, 1, 1) + * BitsStored: (US, 1, 1C) + * HighBit: (US, 1, 1C) + * PresentationLUTShape: (CS, 1, 1) + * LossyImageCompression: (CS, 1, 1) + * LossyImageCompressionRatio: (DS, 1-n, 1C) + * LossyImageCompressionMethod: (CS, 1-n, 1C) + * BurnedInAnnotation: (CS, 1, 1) + * RecognizableVisualFeatures: (CS, 1, 1) + * ContentQualification: (CS, 1, 1) + */ +class DCMTK_DCMPMAP_EXPORT DPMParametricMapImageModule : public IODModule +{ +public: + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + DPMParametricMapImageModule(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + DPMParametricMapImageModule(); + + /** Destructor + */ + virtual ~DPMParametricMapImageModule(); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module ("DPMParametricMapImageModule") + * @return Name of the module ("DPMParametricMapImageModule") + */ + virtual OFString getName() const; + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Get Image Type + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getImageType(OFString &value, + const signed long pos = 0) const; + + /** Get Samples Per Pixel + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSamplesPerPixel(Uint16 &value, + const signed long pos = 0) const; + + /** Get Photometric Interpretation + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPhotometricInterpretation(OFString &value, + const signed long pos = 0) const; + + /** Get Bits Allocated + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getBitsAllocated(Uint16 &value, + const signed long pos = 0) const; + + /** Get Bits Stored + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getBitsStored(Uint16 &value, + const signed long pos = 0) const; + + /** Get High Bit + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getHighBit(Uint16 &value, + const signed long pos = 0) const; + + /** Get Presentation LUT Shape + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPresentationLUTShape(OFString &value, + const signed long pos = 0) const; + + /** Get Lossy Image Compression + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLossyImageCompression(OFString &value, + const signed long pos = 0) const; + + /** Get Lossy Image Compression Ratio + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLossyImageCompressionRatio(OFString &value, + const signed long pos = 0) const; + + /** Get Lossy Image Compression Method + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLossyImageCompressionMethod(OFString &value, + const signed long pos = 0) const; + + /** Get Burned In Annotation + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getBurnedInAnnotation(OFString &value, + const signed long pos = 0) const; + + /** Get Recognizable Visual Features + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getRecognizableVisualFeatures(OFString &value, + const signed long pos = 0) const; + + /** Get Content Qualification + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getContentQualification(OFString &value, + const signed long pos = 0) const; + + /** Set Image Type + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (2-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setImageType(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Samples Per Pixel + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSamplesPerPixel(const Uint16 &value, + const OFBool checkValue = OFTrue); + + /** Set Photometric Interpretation + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPhotometricInterpretation(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Bits Allocated + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setBitsAllocated(const Uint16 &value, + const OFBool checkValue = OFTrue); + + /** Set Bits Stored + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setBitsStored(const Uint16 &value, + const OFBool checkValue = OFTrue); + + /** Set High Bit + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setHighBit(const Uint16 &value, + const OFBool checkValue = OFTrue); + + /** Set Presentation LUT Shape + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPresentationLUTShape(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Lossy Image Compression + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLossyImageCompression(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Lossy Image Compression Ratio + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (DS) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLossyImageCompressionRatio(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Lossy Image Compression Method + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1-n) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLossyImageCompressionMethod(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Burned In Annotation + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setBurnedInAnnotation(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Recognizable Visual Features + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setRecognizableVisualFeatures(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set ContentQualification + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setContentQualification(const OFString &value, + const OFBool checkValue = OFTrue); + +private: + /// The name of this module ("DPMParametricMapImageModule") + static const OFString m_ModuleName; +}; + +#endif // DPMMODPARAMETRICMAPIMAGE_H diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h new file mode 100644 index 00000000..1c8b1b62 --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h @@ -0,0 +1,133 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Series Module + * + */ + +#ifndef DPMMODPARAMETRICMAPSERIES_H +#define DPMMODPARAMETRICMAPSERIES_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/ofstd/ofmem.h" +#include "dcmtk/dcmiod/iodrules.h" +#include "dcmtk/dcmiod/modbase.h" +#include "dcmtk/dcmpmap/dpmdef.h" +#include "dcmtk/dcmiod/iodmacro.h" + +/** Class representing the Parametric Map Series Module: + * + * Modality: (CS, 1, 1) + * SeriesNumber: (IS, 1, 1) + * ReferencedPerformedProcedureStepSequence: (SQ, 1, 1C) + */ +class DCMTK_DCMPMAP_EXPORT DPMParametricMapSeriesModule : public IODModule +{ +public: + /** Constructor + * @param item The item to be used for data storage. If NULL, the + * class creates an empty data container. + * @param rules The rule set for this class. If NULL, the class creates + * one from scratch and adds its values. + */ + DPMParametricMapSeriesModule(OFshared_ptr item, + OFshared_ptr rules); + + /** Constructor + */ + DPMParametricMapSeriesModule(); + + /** Destructor + */ + virtual ~DPMParametricMapSeriesModule(); + + /** Resets rules to their original values + */ + virtual void resetRules(); + + /** Get name of module ("DPMParametricMapSeriesModule") + * @return Name of the module ("DPMParametricMapSeriesModule") + */ + virtual OFString getName() const; + + /** Read attributes from given item into this class + * @param source The source to read from + * @param clearOldData If OFTrue, old data is cleared before reading. Otherwise + * old data is overwritten (or amended) + * @result EC_Normal if reading was successful, error otherwise + */ + virtual OFCondition read(DcmItem& source, + const OFBool clearOldData = OFTrue); + + /** Write attributes from this class into given item + * @param destination The item to write to + * @result EC_Normal if writing was successful, error otherwise + */ + virtual OFCondition write(DcmItem& destination); + + /** Get Modality + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getModality(OFString &value, + const signed long pos = 0) const; + + /** Get Series Number + * @param value Reference to variable in which the value should be stored + * @param pos Index of the value to get (0..vm-1), -1 for all components + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSeriesNumber(OFString &value, + const signed long pos = 0) const; + + /** Get reference to the Referenced Performed Procedure Step Sequence + * @return a reference to the Referenced Performed Procedure Step Sequence + */ + virtual SOPInstanceReferenceMacro* getReferencedPerformedProcedureStepSequence(); + + /** Get a reference to the entire Referenced Performed Procedure Step Sequence, including items + * exceeding the value multiplicity restriction of "1" + * @return a reference to the entire Referenced Performed Procedure Step Sequence + */ + virtual OFVector& getEntireReferencedPerformedProcedureStepSequence(); + + /** Set Modality + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setModality(const OFString &value, + const OFBool checkValue = OFTrue); + + /** Set Series Number + * @param value Value to be set (single value only) or "" for no value + * @param checkValue Check 'value' for conformance with VR (IS) and VM (1) if enabled + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSeriesNumber(const OFString &value, + const OFBool checkValue = OFTrue); + +private: + /// The name of this module ("DPMParametricMapSeriesModule") + static const OFString m_ModuleName; + + /// ReferencedPerformedProcedureStepSequence + OFVector m_ReferencedPerformedProcedureStepSequence; +}; + +#endif // DPMMODPARAMETRICMAPSERIES_H diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h new file mode 100644 index 00000000..923d2d8d --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h @@ -0,0 +1,249 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Generated base class representing the Parametric Map IOD + * + */ + +#ifndef DPMPARAMETRICMAPBASE_H +#define DPMPARAMETRICMAPBASE_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmfg/fginterface.h" +#include "dcmtk/dcmfg/fgderimg.h" +#include "dcmtk/dcmfg/fgfracon.h" +#include "dcmtk/dcmfg/fgframeanatomy.h" +#include "dcmtk/dcmfg/fgframevoilut.h" +#include "dcmtk/dcmfg/fgidentpixeltransform.h" +#include "dcmtk/dcmfg/fgparametricmapframetype.h" +#include "dcmtk/dcmfg/fgpixmsr.h" +#include "dcmtk/dcmfg/fgplanor.h" +#include "dcmtk/dcmfg/fgplanpo.h" +#include "dcmtk/dcmfg/fgrealworldvaluemapping.h" +#include "dcmtk/dcmiod/iodimage.h" +#include "dcmtk/dcmiod/modacquisitioncontext.h" +#include "dcmtk/dcmiod/modcommoninstanceref.h" +#include "dcmtk/dcmiod/modenhequipment.h" +#include "dcmtk/dcmiod/modequipment.h" +#include "dcmtk/dcmiod/modgeneralimage.h" +#include "dcmtk/dcmiod/modgeneralseries.h" +#include "dcmtk/dcmiod/modgeneralstudy.h" +#include "dcmtk/dcmiod/modmultiframedimension.h" +#include "dcmtk/dcmiod/modmultiframefg.h" +#include "dcmtk/dcmiod/modpatient.h" +#include "dcmtk/dcmiod/modpatientstudy.h" +#include "dcmtk/dcmiod/modsopcommon.h" +#include "dcmtk/dcmiod/modimagepixel.h" +#include "dcmtk/dcmiod/modfloatingpointimagepixel.h" +#include "dcmtk/dcmpmap/dpmmodparametricmapimage.h" +#include "dcmtk/dcmpmap/dpmmodparametricmapseries.h" +#include "dcmtk/dcmpmap/dpmdef.h" + +/** Class for managing the Parametric Map IOD attributes. Template parameter defines the type of pixel data + * to use: Unsigned or signed 16 bit integer, or 32 bit floating point, or 64 bit floating point data. + */ +class DCMTK_DCMPMAP_EXPORT DPMParametricMapBase +: public DcmIODImage +< + IODImagePixelModule, + IODImagePixelModule, + IODFloatingPointImagePixelModule, + IODDoubleFloatingPointImagePixelModule +> +{ + +public: + + /** Virtual Destructor + */ + virtual ~DPMParametricMapBase(); + + // -------------------- loading and saving --------------------- + + /** Save current object to given filename + * @param filename The file to write to + * @param writeXfer The transfer syntax to be used + * @return EC_Normal if writing was successful, error otherwise. + */ + virtual OFCondition saveFile(const OFString& filename, + const E_TransferSyntax writeXfer = EXS_LittleEndianExplicit); + + /** Write current object to given item + * @param dataset The item to write to + * @return EC_Normal if writing was successful, error otherwise. + */ + OFCondition writeDataset(DcmItem& dataset); + + /** Perform some basic checking. This method is also invoked when + * writing the object to a DICOM dataset or file. + * @return OFTrue, if no errors were found, OFFalse otherwise. + */ + virtual OFBool check(); + + /** Get access to functional groups. This is meant for reading data from + * functional groups that are not actively managed, i.e.\ made accessible by + * DcmSegmentation. In rare cases, however, it makes sense to access it + * for writing too, e.g.\ in order to add Stacks; use with care! + * @return Reference to the functional groups + */ + virtual FGInterface& getFunctionalGroups(); + + /** Get Patient Module + * @return a reference to the IOD Patient Module + */ + virtual IODPatientModule& getIODPatientModule(); + + /** Get General Study Module + * @return a reference to the IOD General Study Module + */ + virtual IODGeneralStudyModule& getIODGeneralStudyModule(); + + /** Get Patient Study Module + * @return a reference to the IOD Patient Study Module + */ + virtual IODPatientStudyModule& getIODPatientStudyModule(); + + /** Get General Series Module + * @return a reference to the IOD General Series Module + */ + virtual IODGeneralSeriesModule& getIODGeneralSeriesModule(); + + /** Get Parametric Map Series Module + * @return a reference to the Parametric Map Series Module + */ + virtual DPMParametricMapSeriesModule& getDPMParametricMapSeriesModule(); + + /** Get General Equipment Module + * @return a reference to the General Equipment Module + */ + virtual IODGeneralEquipmentModule& getIODGeneralEquipmentModule(); + + /** Get Enhanced General Equipment Module + * @return a reference to the Enhanced General Equipment Module + */ + virtual IODEnhGeneralEquipmentModule& getIODEnhGeneralEquipmentModule(); + + /** Get General Image Module + * @return a reference to the General Image Module + */ + virtual IODGeneralImageModule& getIODGeneralImageModule(); + + /** Get Parametric Map Image Module + * @return a reference to the Parametric Map Image Module + */ + virtual DPMParametricMapImageModule& getDPMParametricMapImageModule(); + + /** Get Multi-frame Functional Groups Module + * @return a reference to the Multi-frame Functional Groups Module + */ + virtual IODMultiFrameFGModule& getIODMultiFrameFGModule(); + + /** Get Multi-frame Dimension Module + * @return a reference to the Multi-frame Dimension Module + */ + virtual IODMultiframeDimensionModule& getIODMultiframeDimensionModule(); + + /** Get Acquisition Context Module + * @return a reference to the Acquisition Context Module + */ + virtual IODAcquisitionContextModule& getIODAcquisitionContextModule(); + + /** Get Common Instance Reference Module + * @return a reference to the Common Instance Reference Module + */ + virtual IODCommonInstanceReferenceModule& getIODCommonInstanceReferenceModule(); + + /** Get SOP Common Module + * @return a reference to the SOP Common Module + */ + virtual IODSOPCommonModule& getIODSOPCommonModule(); + +protected: + + /** Constructor; not public since object should be create via factory + * method in derived class. + */ + DPMParametricMapBase(); + + /** Constructor; not public since object should be create via factory + * method in derived class. + */ + template + DPMParametricMapBase(OFin_place_type_t(ImagePixel)); + + /** Read Parametric Map attributes (all those handled by this class) + * from given item. Reads attributes from base class DcmIODCommon before. + * The current content is deleted even if the reading process fails. + * If the log stream is set and valid the reason for any error might be + * obtained from the error/warning output. + * @param dataset Reference to DICOM dataset from which the document + * should be read + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition read(DcmItem &dataset); + + /** Write current Parametric Map's attributes to DICOM dataset. Also + * writes attributes of base class DcmIODCommon afterwards. + * @param dataset Reference to DICOM dataset to which the current document + * should be written. The dataset is not cleared before writing + * to it! + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition write(DcmItem &dataset); + + /** Clear (removes) all attributes handled by the modules of this IOD. + * IOD Rules are not reset. + */ + virtual void clearData(); + + /** Loads file + * @param dcmff The file format to load into + * @param filename The filename of the file to load + * @param dset Pointer to dataset after loading + * @return EC_Normal if loading was successful, error otherwise + */ + static OFCondition loadFile(DcmFileFormat& dcmff, + const OFString& filename, + DcmDataset*& dset); + + /// Multi-frame Functional Groups high level interface + FGInterface m_FGInterface; + + /// Parametric Map Series Module + DPMParametricMapSeriesModule m_DPMParametricMapSeriesModule; + + /// Enhanced General Equipment Module + IODEnhGeneralEquipmentModule m_IODEnhGeneralEquipmentModule; + + /// Parametric Map Image Module + DPMParametricMapImageModule m_DPMParametricMapImageModule; + + /// Multi-frame Functional Groups Module + IODMultiFrameFGModule m_IODMultiFrameFGModule; + + /// Multi-frame Dimension Module + IODMultiframeDimensionModule m_IODMultiframeDimensionModule; + + /// Acquisition Context Module + IODAcquisitionContextModule m_IODAcquisitionContextModule; + + /// Common Instance Reference Module + IODCommonInstanceReferenceModule m_IODCommonInstanceReferenceModule; + +}; + +#endif // DPMPARAMETRICMAPBASE_H diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h new file mode 100644 index 00000000..9d25e1b4 --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h @@ -0,0 +1,305 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Michael Onken + * + * Purpose: Class representing the Parametric Map IOD + * + */ + +#ifndef DPMPARAMETRICMAPIOD_H +#define DPMPARAMETRICMAPIOD_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmiod/modimagepixelbase.h" +#include "dcmtk/dcmpmap/dpmparametricmapbase.h" +#include "dcmtk/dcmpmap/dpmtypes.h" + + +/** Class for managing the Parametric Map IOD attributes. + */ +class DCMTK_DCMPMAP_EXPORT DPMParametricMapIOD : public DPMParametricMapBase +{ +public: + + /** Inner class that offers typed interface to bulk data. + */ + template + class DCMTK_DCMPMAP_EXPORT Frames + { + public: + + /// Binary pixel type + typedef PixelType pixel_type; + + /** Method that adds a frame to the Parametric Map using the underlying + * binary data type. + * @param data The frame data + * @param numPixels The number of pixels (rows * columns) of the frame + * @param perFrameInformation The per-frame functional groups applying for + * @return EC_Normal if adding was successful, error otherwise + */ + OFCondition addFrame(PixelType* data, + const size_t numPixels, + const OFVector& perFrameInformation); + + /** Type-specific getFrame() method that returns Float32, Uint16, or whatever + * is used in this Parametric Map. + * @return Pointer to typed pixel data + */ + PixelType* getFrame(const size_t frameNumber); + + private: + + // Make sure the Parametric Map object (and no one else) can use the constructor below. + friend class DPMParametricMapIOD; + + /** Create Frames object in DPMParametricMapIOD (see friend declaration above) + * @param map The map object that will contain the frames + */ + Frames(DPMParametricMapIOD& map); + + /// Reference to Parametric Map object in order to access its pixel data + DPMParametricMapIOD& m_Map; + }; + + /** Frames can contain Uint16, Sint16, Float32 or Float64 data, or nothing + * at all (in that case OFCondition denotes a corresponding error) + */ + typedef OFvariant + < + OFCondition, + Frames, + Frames, + Frames, + Frames + > FramesType; + + /** Virtual Destructor, frees memory. + */ + virtual ~DPMParametricMapIOD(); + + /** Create new Parametric Map object. Takes the minimum of required parameters. + * Afterwards, additional setters() can be used to set optional data. Frames + * and their related per-frame functional groups should be added using addFrame(). + * Shared functional groups should be added using addForAllFrames(). + * @param modality The modality of this Parametric Map (series level attribute). + * A list of Defined Terms can be found in the standard. Very often + * "MR" is the right choice. Only if a mix of different modalities has been + * use for creation "OT" should be used. + * @param seriesNumber A number identifying this series. If importPatientStudyFor() + * is called later in order to put this Parametric Map into an existing Series, + * the Series Number will be taken over from the existing series instead. + * @param instanceNumber A number identifying this image + * @param rows The number of rows of all frames of the Parametric Map + * @param columns The number of columns of all frames of the Parametric Map + * @param equipmentInfo Information about the equipment creating thing Parametric Map + * @param contentIdentification General information about this content + * @param imageFlavor 3rd value of attribute Image Type. See standard for list of + * applicable Defined Terms. + * @param derivedPixelContrast 4th value of attribute Image Type. See standard for list of + * applicable Defined Terms. + * @param contentQualification Either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE + * @return Variant, either OFCondition with error code in case of error, Parametric + * Map object in case of success + */ + template + static OFvariant create(const OFString& modality, + const OFString& seriesNumber, + const OFString& instanceNumber, + const Uint16 rows, + const Uint16 columns, + const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo, + const ContentIdentificationMacro& contentIdentification, + const OFString& imageFlavor, + const OFString& derivedPixelContrast, + const DPMTypes::ContentQualification& contentQualification); + + /** Indicates whether or not the image contains sufficiently recognizable visual + * features to allow the image or a reconstruction from a set of images to + * identify the patient. + * @param yesOrNo Must be related "YES" or "NO" types + * @return EC_Normal if setting was successful, error otherwise + */ + + virtual OFCondition setRecognizableVisualFeatures(const DPMTypes::RecognizableVisibleFeatures yesOrNo); + + /** Add a functional group for all frames + * @param group The group to be added as shared functional group + * @return EC_Normal if adding was successful, error otherwise + */ + virtual OFCondition addForAllFrames(const FGBase& group); + + // -------------------- loading and saving --------------------- + + /** Load Parametric Map object from file + * @param filename The file to read from + * @return Variant, either the resulting Parametric Map object in case of success, + * an OFCondition error code otherwise + */ + static OFvariant loadFile(const OFString& filename); + + /** Load Parametric Map object from dataset object. + * @param dataset The dataset to read from + * @return Variant, either the resulting Parametric Map object in case of success, + * an OFCondition error code otherwise + */ + static OFvariant loadDataset(DcmDataset& dataset); + + /** Read Parametric Map attributes (all those handled by this class) + * from given item. Reads attributes from base class DcmIODCommon before. + * The current content is deleted even if the reading process fails. + * If the log stream is set and valid the reason for any error might be + * obtained from the error/warning output. + * @param dataset Reference to DICOM dataset from which the document + * should be read + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition read(DcmItem &dataset); + + /** Write current Parametric Map's attributes to DICOM dataset. + * @param dataset Reference to DICOM dataset to which the current document + * should be written. The dataset is not cleared before writing + * to it! + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition write(DcmItem &dataset); + + // -------------------- access --------------------- + + /** Get Recognizable Visual Features + * @return Returns related YES or NO data type + */ + virtual DPMTypes::RecognizableVisibleFeatures getRecognizableVisualFeatures(); + + /** Get Content Qualification + * @return Returns either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE or CQ_UNKNOWN + */ + virtual DPMTypes::ContentQualification getContentQualification(); + + /** Get number of rows + * @param rows The number of rows (output) + * @return EC_Normal if getting was successful, error otherwise + */ + virtual OFCondition getRows(Uint16& rows); + + /** Get number of cols + * @param cols The number of columns (output) + * @return EC_Normal if getting was successful, error otherwise + */ + virtual OFCondition getColumns(Uint16& cols); + + /** Perform some basic checking. This method is also invoked when + * writing the object to a DICOM dataset or file. + * @return OFTrue, if no errors were found, OFFalse otherwise. + */ + virtual OFBool check(); + + /** Get number of frames, based on the number of items in the shared + * functional functional groups sequence (i.e.\ the attribute Number of + * Frames) is not trusted after reading + * @return The number of frames handled by this object + */ + size_t getNumberOfFrames() const; + + /** Get access to frame data + * @return Class managing the frame data + */ + FramesType getFrames(); + +protected: + + /** Write current generic Parametric Map's attributes to DICOM dataset, i.e. + * those that are not directly pixel-related + * @param dataset Reference to DICOM dataset to which the current document + * should be written. The dataset is not cleared before writing + * to it. + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition writeGeneric(DcmItem &dataset); + + /** Read Parametric Map's generic (not directly pixel-data related) attributes from + * DICOM dataset. + * @param dataset Reference to DICOM dataset to read from. + * @return EC_Normal if successful, an error code otherwise + */ + virtual OFCondition readGeneric(DcmItem &dataset); + + /** Decompress the given dataset if required. Only RLE compression is accepted + * and decompressed by this tool. A warning is printed if the dataset has been compressed + * before with another compression scheme and is handed into this method in uncompressed + * format. Handing in any other compression but RLE will lead to an error. + * @param dset The dataset to be decompressed + * @return EC_Normal if decompression worked (or dataset is already in uncompressed format) + * IOD_EC_CannotDecompress otherwise + */ + static OFCondition decompress(DcmDataset& dset); + + /** Constructor + */ + DPMParametricMapIOD(); + + /** Constructor, anonymous parameter is the image pixel module to be used + */ + template + DPMParametricMapIOD(OFin_place_type_t(ImagePixel)); + +private: + + // Forward declarations + template class GetPixelDataVisitor; + struct SetImagePixelModuleVisitor; + struct WriteVisitor; + struct GetFramesVisitor; + struct ReadVisitor; + struct ReadFramesVisitor; + + /** Initialize new Parametric Map object except directly pixel-related data + * @param modality The modality of this Parametric Map (series level attribute). + * A list of Defined Terms can be found in the standard. Very often + * "MR" is the right choice. Only if a mix of different modalities has been + * use for creation "OT" should be used. + * @param seriesNumber A number identifying this series. If importPatientStudyFor() + * is called later in order to put this Parametric Map into an existing Series, + * the Series Number will be taken over from the existing series instead. + * @param instanceNumber A number identifying this image + * @param equipmentInfo Information about the equipment creating thing Parametric Map + * @param contentIdentification General information about this content + * @param imageFlavor 3rd value of attribute Image Type. See standard for list of + * applicable Defined Terms. + * @param derivedPixelContrast 4th value of attribute Image Type. See standard for list of + * applicable Defined Terms. + * @param contentQualification Either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE + * @return EC_Normal in case of success, error otherwise + */ + OFCondition init(const OFString& modality, + const OFString& seriesNumber, + const OFString& instanceNumber, + const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo, + const ContentIdentificationMacro& contentIdentification, + const OFString& imageFlavor, + const OFString& derivedPixelContrast, + const DPMTypes::ContentQualification& contentQualification); + + + /// Parametric Map Image Module's Content Identification + ContentIdentificationMacro m_ContentIdentification; + + /// Binary frame data + OFVector m_Frames; + +}; + +#endif // DPMPARAMETRICMAPIOD_H diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h b/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h new file mode 100644 index 00000000..9bc952d3 --- /dev/null +++ b/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h @@ -0,0 +1,137 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Michael Onken + * + * Purpose: Class managing various parametric myps-typical types + * + */ + +#ifndef DPMTYPES_H +#define DPMTYPES_H + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/oflog/oflog.h" +#include "dcmtk/dcmiod/iodmacro.h" +#include "dcmtk/dcmpmap/dpmdef.h" + +// ---------------------------------------------------------------------------- +// Define the loggers for this module +// ---------------------------------------------------------------------------- + +extern DCMTK_DCMPMAP_EXPORT OFLogger DCM_dcmpmapLogger; + +#define DCMPMAP_TRACE(msg) OFLOG_TRACE(DCM_dcmpmapLogger, msg) +#define DCMPMAP_DEBUG(msg) OFLOG_DEBUG(DCM_dcmpmapLogger, msg) +#define DCMPMAP_INFO(msg) OFLOG_INFO(DCM_dcmpmapLogger, msg) +#define DCMPMAP_WARN(msg) OFLOG_WARN(DCM_dcmpmapLogger, msg) +#define DCMPMAP_ERROR(msg) OFLOG_ERROR(DCM_dcmpmapLogger, msg) +#define DCMPMAP_FATAL(msg) OFLOG_FATAL(DCM_dcmpmapLogger, msg) + +// ---------------------------------------------------------------------------- +// Error constants +// ---------------------------------------------------------------------------- + +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_InvalidDimensions; +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_InvalidAttributeValue; +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_InvalidPixelInfo; +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_InvalidPixelData; +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_NoPixelData; +extern DCMTK_DCMPMAP_EXPORT const OFConditionConst DPM_InvalidSOPClass; + +/** General purpose class hiding global functions, constants and types in the + * parametric map context from the global namespace. + */ +class DCMTK_DCMPMAP_EXPORT DPMTypes +{ + public: + + /// Enum for attribute Content Qualification + enum ContentQualification + { + /// Unkonwn (e.g. not set) + CQ_UNKNOWN, + /// PRODUCT + CQ_PRODUCT, + /// RESEARCH + CQ_RESEARCH, + /// SERVICE + CQ_SERVICE + }; + + /// Enum for attribute Lossy Image Compression + enum LossyImageCompression + { + /// Unknown (e.g. not set) + COMP_UNKNOWN, + /// YES (lossy image compression used) + COMP_YES, + /// NO (no lossy image compression used) + COMP_NO + }; + + + /// Enum for attribute Recognizable Visual Features + enum RecognizableVisibleFeatures + { + /// Unknown (e.g. not set) + RVF_UNKNOWN, + /// YES (recognizable visual features present) + RVF_YES, + /// NO (recognizable visual features not present) + RVF_NO + }; + + /** Convert Recognizable Visual Features enum to OFString + * @param rvf The enum to convert + * @return String version of enum value + */ + static OFString rvf2Str(const RecognizableVisibleFeatures rvf); + + /** Convert OFString version of Recognizable Visual Features attribute + * value to enum value + * @param rvf The OFString value to convert + * @return The enum value of the string + */ + static RecognizableVisibleFeatures str2Rvf(const OFString& rvf); + + /** Convert Content Qualification enum to OFString + * @param cq The enum to convert + * @return String version of enum value + */ + static OFString cq2Str(const ContentQualification cq); + + /** Convert OFString version of Content Qualification attribute + * value to enum value + * @param cq The OFString value to convert + * @return The enum value of the string + */ + static ContentQualification str2Cq(const OFString& cq); + + /** Check whether Recognizable Visual Features enum value is valid + * @param rvf Value to check + * @return OFTrue if valid, OFFalse otherwise + */ + static OFBool rvfValid(const RecognizableVisibleFeatures rvf); + + /** Check whether Content Qualification enum value is valid + * @param cq Value to check + * @return OFTrue if valid, OFFalse otherwise + */ + static OFBool cqValid(const ContentQualification cq); + +}; + +#endif // DPMTYPES_H diff --git a/dcmpmap/libsrc/CMakeLists.txt b/dcmpmap/libsrc/CMakeLists.txt new file mode 100644 index 00000000..8f48aa6a --- /dev/null +++ b/dcmpmap/libsrc/CMakeLists.txt @@ -0,0 +1,5 @@ +# create library from source files +DCMTK_ADD_LIBRARY(dcmpmap dpmtypes dpmmodparametricmapseries dpmmodparametricmapimage dpmparametricmapbase dpmparametricmapiod) + +DCMTK_TARGET_LINK_MODULES(dcmpmap dcmfg dcmiod dcmdata ofstd oflog) +DCMTK_TARGET_LINK_LIBRARIES(dcmpmap ${ZLIB_LIBS} ${WIN32_STD_LIBRARIES}) diff --git a/dcmpmap/libsrc/Makefile.dep b/dcmpmap/libsrc/Makefile.dep new file mode 100644 index 00000000..91f18056 --- /dev/null +++ b/dcmpmap/libsrc/Makefile.dep @@ -0,0 +1,663 @@ +dpmmodparametricmapimage.o: dpmmodparametricmapimage.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../include/dcmtk/dcmpmap/dpmdef.h +dpmmodparametricmapseries.o: dpmmodparametricmapseries.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../include/dcmtk/dcmpmap/dpmdef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +dpmparametricmapbase.o: dpmparametricmapbase.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/dcmpmap/dpmdef.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \ + ../../dcmfg/include/dcmtk/dcmfg/fg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ + ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfor.h \ + ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \ + ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ + ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \ + ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h +dpmparametricmapiod.o: dpmparametricmapiod.cc \ + ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \ + ../../dcmfg/include/dcmtk/dcmfg/fg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ + ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfor.h \ + ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \ + ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \ + ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \ + ../include/dcmtk/dcmpmap/dpmdef.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \ + ../include/dcmtk/dcmpmap/dpmtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h +dpmtypes.o: dpmtypes.cc ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../include/dcmtk/dcmpmap/dpmtypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/dcmpmap/dpmdef.h diff --git a/dcmpmap/libsrc/Makefile.in b/dcmpmap/libsrc/Makefile.in new file mode 100644 index 00000000..5f72f742 --- /dev/null +++ b/dcmpmap/libsrc/Makefile.in @@ -0,0 +1,56 @@ +# +# Makefile for dcmpmap/libsrc +# + +@SET_MAKE@ + +SHELL = /bin/sh +VPATH = @srcdir@:@top_srcdir@/include:@top_srcdir@/@configdir@/include +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + +ofstddir = $(top_srcdir)/../ofstd +oflogdir = $(top_srcdir)/../oflog +dcmdatadir = $(top_srcdir)/../dcmdata +dcmioddir = $(top_srcdir)/../dcmiod +dcmfgdir = $(top_srcdir)/../dcmfg + +LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include \ + -I$(dcmdatadir)/include -I$(dcmioddir)/include \ + -I$(dcmfgdir)/include + +LOCALDEFS = + +objs = dpmtypes.o dpmtypes.o dpmmodparametricmapseries.o dpmmodparametricmapimage.o dpmparametricmapbase.o dpmparametricmapiod.o + + +library = libdcmpmap.$(LIBEXT) + + +all: $(library) + +install: $(library) + $(configdir)/mkinstalldirs $(DESTDIR)$(libdir) + $(INSTALL_DATA) $(library) $(DESTDIR)$(libdir)/$(library) + $(RANLIB) $(DESTDIR)$(libdir)/$(library) + + +$(library): $(objs) + $(AR) $(ARFLAGS) $@ $(objs) + $(RANLIB) $@ + + +clean: + rm -f $(objs) $(library) $(TRASH) + +distclean: + rm -f $(objs) $(library) $(DISTTRASH) + + +dependencies: + $(CXX) -MM $(defines) $(includes) $(CPPFLAGS) $(CXXFLAGS) *.cc > $(DEP) + +include $(DEP) diff --git a/dcmpmap/libsrc/dpmmodparametricmapimage.cc b/dcmpmap/libsrc/dpmmodparametricmapimage.cc new file mode 100644 index 00000000..a22883aa --- /dev/null +++ b/dcmpmap/libsrc/dpmmodparametricmapimage.cc @@ -0,0 +1,289 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Image Module + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcvrcs.h" +#include "dcmtk/dcmdata/dcvrds.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmpmap/dpmmodparametricmapimage.h" + +const OFString DPMParametricMapImageModule::m_ModuleName = "DPMParametricMapImageModule"; + +DPMParametricMapImageModule::DPMParametricMapImageModule() +: IODModule() +{ + resetRules(); +} + +DPMParametricMapImageModule::DPMParametricMapImageModule(OFshared_ptr item, + OFshared_ptr rules) +: IODModule(item, rules) +{ + // reset element rules + resetRules(); +} + +DPMParametricMapImageModule::~DPMParametricMapImageModule() +{ + +} + +OFString DPMParametricMapImageModule::getName() const +{ + return m_ModuleName; +} + +void DPMParametricMapImageModule::resetRules() +{ + // parameters are tag, VM, type. Overwrite old rules if any. + m_Rules->addRule(new IODRule(DCM_ImageType, "2-n","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_BitsStored, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_HighBit, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_PresentationLUTShape, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_LossyImageCompression, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_LossyImageCompressionRatio, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_LossyImageCompressionMethod, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_BurnedInAnnotation, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_RecognizableVisualFeatures, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_ContentQualification, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); +} + +OFCondition DPMParametricMapImageModule::read(DcmItem& source, + const OFBool clearOldData) +{ + if (clearOldData) + clearData(); + + IODComponent::read(source, OFFalse /* data already cleared */); + + return EC_Normal; +} + +OFCondition DPMParametricMapImageModule::write(DcmItem& destination) +{ + OFCondition result = EC_Normal; + + result = IODComponent::write(destination); + + return result; +} + +OFCondition DPMParametricMapImageModule::getImageType(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_ImageType, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getSamplesPerPixel(Uint16 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos); +} + +OFCondition DPMParametricMapImageModule::getPhotometricInterpretation(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getBitsAllocated(Uint16 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos); +} + +OFCondition DPMParametricMapImageModule::getBitsStored(Uint16 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint16(DCM_BitsStored, value, pos); +} + +OFCondition DPMParametricMapImageModule::getHighBit(Uint16 &value, + const signed long pos) const +{ + return m_Item->findAndGetUint16(DCM_HighBit, value, pos); +} + +OFCondition DPMParametricMapImageModule::getPresentationLUTShape(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_PresentationLUTShape, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getLossyImageCompression(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompression, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getLossyImageCompressionRatio(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompressionRatio, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getLossyImageCompressionMethod(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompressionMethod, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getBurnedInAnnotation(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_BurnedInAnnotation, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getRecognizableVisualFeatures(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_RecognizableVisualFeatures, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::getContentQualification(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_ContentQualification, *m_Item, value, pos); +} + +OFCondition DPMParametricMapImageModule::setImageType(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "2-n") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_ImageType, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setSamplesPerPixel(const Uint16 &value, + const OFBool checkValue) +{ + if (checkValue && (value != 1)) + return IOD_EC_InvalidElementValue; + + return m_Item->putAndInsertUint16(DCM_SamplesPerPixel, value); +} + +OFCondition DPMParametricMapImageModule::setPhotometricInterpretation(const OFString &value, + const OFBool checkValue) +{ + if (checkValue && (value != "MONOCHROME2")) + return IOD_EC_InvalidElementValue; + + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setBitsAllocated(const Uint16 &value, + const OFBool checkValue) +{ + if (checkValue && (value != 16) && (value != 32) && (value != 64)) + return IOD_EC_InvalidElementValue; + + return m_Item->putAndInsertUint16(DCM_BitsAllocated, value); +} + +OFCondition DPMParametricMapImageModule::setBitsStored(const Uint16 &value, + const OFBool checkValue) +{ + if (checkValue && (value != 16) && (value != 32) && (value != 64)) + return IOD_EC_InvalidElementValue; + + return m_Item->putAndInsertUint16(DCM_BitsStored, value); +} + +OFCondition DPMParametricMapImageModule::setHighBit(const Uint16 &value, + const OFBool checkValue) +{ + if (checkValue && (value != 15)) + return IOD_EC_InvalidElementValue; + + return m_Item->putAndInsertUint16(DCM_HighBit, value); +} + +OFCondition DPMParametricMapImageModule::setPresentationLUTShape(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_PresentationLUTShape, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setLossyImageCompression(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompression, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setLossyImageCompressionRatio(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompressionRatio, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setLossyImageCompressionMethod(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompressionMethod, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setBurnedInAnnotation(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_BurnedInAnnotation, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setRecognizableVisualFeatures(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_RecognizableVisualFeatures, value); + return result; +} + +OFCondition DPMParametricMapImageModule::setContentQualification(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_ContentQualification, value); + return result; +} diff --git a/dcmpmap/libsrc/dpmmodparametricmapseries.cc b/dcmpmap/libsrc/dpmmodparametricmapseries.cc new file mode 100644 index 00000000..cf65edc4 --- /dev/null +++ b/dcmpmap/libsrc/dpmmodparametricmapseries.cc @@ -0,0 +1,124 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Class for managing the Parametric Map Series Module + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcdeftag.h" +#include "dcmtk/dcmdata/dcvrcs.h" +#include "dcmtk/dcmdata/dcvris.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmpmap/dpmmodparametricmapseries.h" + +const OFString DPMParametricMapSeriesModule::m_ModuleName = "DPMParametricMapSeriesModule"; + +DPMParametricMapSeriesModule::DPMParametricMapSeriesModule() +: IODModule() +{ + resetRules(); +} + +DPMParametricMapSeriesModule::DPMParametricMapSeriesModule(OFshared_ptr item, + OFshared_ptr rules) +: IODModule(item, rules) +{ + // reset element rules + resetRules(); +} + +DPMParametricMapSeriesModule::~DPMParametricMapSeriesModule() +{ + +} + +OFString DPMParametricMapSeriesModule::getName() const +{ + return m_ModuleName; +} + +void DPMParametricMapSeriesModule::resetRules() +{ + // parameters are tag, VM, type. Overwrite old rules if any. + m_Rules->addRule(new IODRule(DCM_Modality, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_SeriesNumber, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue); + m_Rules->addRule(new IODRule(DCM_ReferencedPerformedProcedureStepSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue); +} + +OFCondition DPMParametricMapSeriesModule::read(DcmItem& source, + const OFBool clearOldData) +{ + if (clearOldData) + clearData(); + + IODComponent::read(source, OFFalse /* data already cleared */); + DcmIODUtil::readSubSequence(source, DCM_ReferencedPerformedProcedureStepSequence, m_ReferencedPerformedProcedureStepSequence, m_Rules->getByTag(DCM_ReferencedPerformedProcedureStepSequence)); + + return EC_Normal; +} + +OFCondition DPMParametricMapSeriesModule::write(DcmItem& destination) +{ + OFCondition result = EC_Normal; + + if(SOPInstanceReferenceMacro* pReferencedPerformedProcedureStepSequence = getReferencedPerformedProcedureStepSequence()) + DcmIODUtil::writeSingleItem(result, DCM_ReferencedPerformedProcedureStepSequence, *pReferencedPerformedProcedureStepSequence, *m_Item, m_Rules->getByTag(DCM_ReferencedPerformedProcedureStepSequence)); + result = IODComponent::write(destination); + + return result; +} + +OFCondition DPMParametricMapSeriesModule::getModality(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_Modality, *m_Item, value, pos); +} + +OFCondition DPMParametricMapSeriesModule::getSeriesNumber(OFString &value, + const signed long pos) const +{ + return DcmIODUtil::getStringValueFromItem(DCM_SeriesNumber, *m_Item, value, pos); +} + +SOPInstanceReferenceMacro* DPMParametricMapSeriesModule::getReferencedPerformedProcedureStepSequence() +{ + return m_ReferencedPerformedProcedureStepSequence.empty() ? OFnullptr : &*m_ReferencedPerformedProcedureStepSequence.begin(); +} + +OFVector& DPMParametricMapSeriesModule::getEntireReferencedPerformedProcedureStepSequence() +{ + return m_ReferencedPerformedProcedureStepSequence; +} + +OFCondition DPMParametricMapSeriesModule::setModality(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_Modality, value); + return result; +} + +OFCondition DPMParametricMapSeriesModule::setSeriesNumber(const OFString &value, + const OFBool checkValue) +{ + OFCondition result = (checkValue) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = m_Item->putAndInsertOFStringArray(DCM_SeriesNumber, value); + return result; +} diff --git a/dcmpmap/libsrc/dpmparametricmapbase.cc b/dcmpmap/libsrc/dpmparametricmapbase.cc new file mode 100644 index 00000000..a1dc1100 --- /dev/null +++ b/dcmpmap/libsrc/dpmparametricmapbase.cc @@ -0,0 +1,227 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Jan Schlamelcher + * + * Purpose: Generated base class representing the Parametric Map IOD + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmiod/iodutil.h" +#include "dcmtk/dcmpmap/dpmtypes.h" +#include "dcmtk/dcmpmap/dpmparametricmapbase.h" + + +DPMParametricMapBase::DPMParametricMapBase() +: DPMParametricMapBase::IODImage() +, m_DPMParametricMapSeriesModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODEnhGeneralEquipmentModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_DPMParametricMapImageModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODMultiFrameFGModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODMultiframeDimensionModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODAcquisitionContextModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODCommonInstanceReferenceModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +{ +} + + +template +DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(ImagePixel)) +: DPMParametricMapBase::IODImage(OFin_place) +, m_DPMParametricMapSeriesModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODEnhGeneralEquipmentModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_DPMParametricMapImageModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODMultiFrameFGModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODMultiframeDimensionModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODAcquisitionContextModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +, m_IODCommonInstanceReferenceModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules()) +{ +} + + +DPMParametricMapBase::~DPMParametricMapBase() +{ +} + + +void DPMParametricMapBase::clearData() +{ + DPMParametricMapBase::IODImage::clearData(); +} + + +OFCondition DPMParametricMapBase::read(DcmItem& dataset) +{ + OFString sopClass; + if(DcmIODUtil::checkSOPClass(&dataset, UID_ParametricMapStorage, sopClass).bad()) + { + DCMPMAP_ERROR("Given file does not seem to be a Parametric Map storage object since SOP class is: " << sopClass); + return IOD_EC_WrongSOPClass; + } + + DPMParametricMapBase::IODImage::read(dataset); + m_DPMParametricMapSeriesModule.read(dataset); + m_IODEnhGeneralEquipmentModule.read(dataset); + m_DPMParametricMapImageModule.read(dataset); + m_IODMultiFrameFGModule.read(dataset); + m_FGInterface.read(dataset); + m_IODMultiframeDimensionModule.read(dataset); + m_IODAcquisitionContextModule.read(dataset); + m_IODCommonInstanceReferenceModule.read(dataset); + + return EC_Normal; +} + + +OFCondition DPMParametricMapBase::saveFile(const OFString& filename, + const E_TransferSyntax writeXfer) +{ + DcmFileFormat dcmff; + OFCondition result; + if((result = write(*dcmff.getDataset())).good()) + result = dcmff.saveFile(filename.c_str(), writeXfer); + if(result.bad()) + DCMPMAP_ERROR("Cannot save Parametric Map object to file " << filename << ": " << result.text()); + return result; +} + + +OFCondition DPMParametricMapBase::writeDataset(DcmItem& dataset) +{ + return write(dataset); +} + + +OFCondition DPMParametricMapBase::write(DcmItem& dataset) +{ + if(!check()) + return IOD_EC_InvalidObject; + + OFCondition result; + if((result = m_DPMParametricMapSeriesModule.write(dataset)).good()) + if((result = m_IODEnhGeneralEquipmentModule.write(dataset)).good()) + if((result = m_DPMParametricMapImageModule.write(dataset)).good()) + if((result = m_IODMultiFrameFGModule.write(dataset)).good()) + if((result = m_FGInterface.write(dataset)).good()) + if((result = m_IODMultiframeDimensionModule.write(dataset)).good()) + if((result = m_IODAcquisitionContextModule.write(dataset)).good()) + if((result = m_IODCommonInstanceReferenceModule.write(dataset)).good()) + return DPMParametricMapBase::IODImage::write(dataset); + + return result; +} + + +OFBool DPMParametricMapBase::check() +{ + return m_FGInterface.check(); +} + + +FGInterface& DPMParametricMapBase::getFunctionalGroups() +{ + return m_FGInterface; +} + + +IODPatientModule& DPMParametricMapBase::getIODPatientModule() +{ + return DPMParametricMapBase::IODImage::getPatient(); +} + + +IODGeneralStudyModule& DPMParametricMapBase::getIODGeneralStudyModule() +{ + return DPMParametricMapBase::IODImage::getStudy(); +} + + +IODPatientStudyModule& DPMParametricMapBase::getIODPatientStudyModule() +{ + return DPMParametricMapBase::IODImage::getPatientStudy(); +} + + +IODGeneralSeriesModule& DPMParametricMapBase::getIODGeneralSeriesModule() +{ + return DPMParametricMapBase::IODImage::getSeries(); +} + + +DPMParametricMapSeriesModule& DPMParametricMapBase::getDPMParametricMapSeriesModule() +{ + return m_DPMParametricMapSeriesModule; +} + + +IODGeneralEquipmentModule& DPMParametricMapBase::getIODGeneralEquipmentModule() +{ + return DPMParametricMapBase::IODImage::getEquipment(); +} + + +IODEnhGeneralEquipmentModule& DPMParametricMapBase::getIODEnhGeneralEquipmentModule() +{ + return m_IODEnhGeneralEquipmentModule; +} + + +IODGeneralImageModule& DPMParametricMapBase::getIODGeneralImageModule() +{ + return DPMParametricMapBase::IODImage::getGeneralImage(); +} + + +DPMParametricMapImageModule& DPMParametricMapBase::getDPMParametricMapImageModule() +{ + return m_DPMParametricMapImageModule; +} + + +IODMultiFrameFGModule& DPMParametricMapBase::getIODMultiFrameFGModule() +{ + return m_IODMultiFrameFGModule; +} + + +IODMultiframeDimensionModule& DPMParametricMapBase::getIODMultiframeDimensionModule() +{ + return m_IODMultiframeDimensionModule; +} + + +IODAcquisitionContextModule& DPMParametricMapBase::getIODAcquisitionContextModule() +{ + return m_IODAcquisitionContextModule; +} + + +IODCommonInstanceReferenceModule& DPMParametricMapBase::getIODCommonInstanceReferenceModule() +{ + return m_IODCommonInstanceReferenceModule; +} + + +IODSOPCommonModule& DPMParametricMapBase::getIODSOPCommonModule() +{ + return DPMParametricMapBase::IODImage::getSOPCommon(); +} + + +template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODImagePixelModule)); +template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODImagePixelModule)); +template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODFloatingPointImagePixelModule)); +template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODDoubleFloatingPointImagePixelModule)); diff --git a/dcmpmap/libsrc/dpmparametricmapiod.cc b/dcmpmap/libsrc/dpmparametricmapiod.cc new file mode 100644 index 00000000..cbbeab2a --- /dev/null +++ b/dcmpmap/libsrc/dpmparametricmapiod.cc @@ -0,0 +1,1063 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Michael Onken + * + * Purpose: Class for managing the Parametric Map IOD + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmpmap/dpmparametricmapiod.h" +#include "dcmtk/dcmiod/iodutil.h" + +// ---------------------------------------------------------------------------- +// Class SetImagePixelModuleVisitor: +// Class for setting Image Pixel Module attributes based on pixel data type +// ---------------------------------------------------------------------------- + +struct DPMParametricMapIOD::SetImagePixelModuleVisitor +{ + SetImagePixelModuleVisitor(const Uint16 r, + const Uint16 c) + : rows(r) + , cols(c) + { + + } + + template + OFCondition operator()( T& t ) + { + if ( (rows == 0) || (cols == 0) ) + { + DCMPMAP_ERROR("Rows/Cols must be non-zero but are : " << rows << "/" << cols); + return DPM_InvalidDimensions; + } + + t.setRows(rows); + t.setColumns(cols); + setSpecificValues(t); + + return EC_Normal; + } + + template + void setSpecificValues(IODImagePixelModule& p) + { + p.setBitsAllocated(16); + p.setBitsStored(16); + p.setHighBit(15); + p.setSamplesPerPixel(1); + p.setPhotometricInterpretation("MONOCHROME2"); + p.setPixelRepresentation(OFis_signed::value ? 1 : 0); + } + + void setSpecificValues(IODFloatingPointImagePixelModule& p) + { + // Avoid compiler warning about unused parameter "p" + (void)p; + // No specific values for 32 bit floating point data to be set + } + + void setSpecificValues(IODDoubleFloatingPointImagePixelModule& p) + { + // Avoid compiler warning about unused parameter "p" + (void)p; + // No specific values for 64 bit floating point data to be set + } + // Members + const Uint16 rows; + const Uint16 cols; +}; + + +struct DPMParametricMapIOD::ReadVisitor +{ + // Inner class that implements the specializations for different + // pixel data types + template + class DcmElementOf; + + ReadVisitor(DcmItem& srcItem, + DPMParametricMapIOD& m) + : item(srcItem) + , map(m) + { + // Nothing to do + } + + OFCondition operator()(OFmonostate) + { + return DPM_InvalidPixelData; + } + + template + OFCondition operator()(ImagePixel& pixel) + { + OFCondition result = map.readGeneric(item); + if (result.good()) + { + Uint16 rows, cols; + size_t numFrames, numBytesFrame; + rows = cols = numFrames = numBytesFrame = 0; + map.getRows(rows); + map.getColumns(cols); + numFrames = map.getFunctionalGroups().getNumberOfFrames(); + if (!rows || !cols || !numFrames) + { + DCMPMAP_ERROR("Rows (" << rows << "), Columns (" << cols << ") and Number of Frames (" << numFrames << ") must not be 0"); + return DPM_InvalidPixelInfo; + } + numBytesFrame = rows * cols * sizeof(typename ImagePixel::value_type); + result = readSpecific(pixel, numFrames, numBytesFrame); + } + return result; + } + + template + OFCondition readSpecific(IODImagePixelModule& p, + const Uint16 numFrames, + const size_t numBytesFrame) + { + // Avoid compiler warning about unused parameter + (void)p; + unsigned long numTotalWords = 0; + const Uint16* pixData = NULL; + if (item.findAndGetUint16Array(DCM_PixelData, pixData, &numTotalWords).good()) + { + if (numTotalWords == numBytesFrame * numFrames / 2 /* we compare to num words not num bytes */) + { + for (Uint16 n = 0; n < numFrames; n++) + { + DcmIODTypes::Frame* f = new DcmIODTypes::Frame; + if (f) + { + f->length = numBytesFrame; + f->pixData = new Uint8[f->length]; + memcpy(f->pixData, pixData + n*numBytesFrame/2, numBytesFrame); + map.m_Frames.push_back(f); + } + else + { + return EC_MemoryExhausted; + } + } + } + else + { + DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 2 << " pixels but Pixel Data has " << numTotalWords << " pixels"); + return DPM_InvalidPixelInfo; + } + } + else + { + DCMPMAP_ERROR("No Pixel Data element found"); + return DPM_NoPixelData; + } + return EC_Normal; + } + + OFCondition readSpecific(IODFloatingPointImagePixelModule& p, + const Uint16 numFrames, + const size_t numBytesFrame) + { + // Avoid compiler warning on unused parameter + (void)p; + unsigned long numTotalFloats = 0; + const Float32* pixData = NULL; + if (item.findAndGetFloat32Array(DCM_FloatPixelData, pixData, &numTotalFloats).good()) + { + if (numTotalFloats == numBytesFrame * numFrames / 4 /* we compare to 32 bit floats not bytes */) + { + for (Uint16 n=0; n < numFrames; n++) + { + DcmIODTypes::Frame* f = new DcmIODTypes::Frame; + if (f) + { + f->length = numBytesFrame; + f->pixData = new Uint8[f->length]; + memcpy(f->pixData, pixData + n*numBytesFrame/4, numBytesFrame); + map.m_Frames.push_back(f); + } + else + { + return EC_MemoryExhausted; + } + } + } + else + { + DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 4 << " pixels but Float Pixel Data has " << numTotalFloats << " pixels"); + return DPM_InvalidPixelInfo; + } + } + else + { + DCMPMAP_ERROR("No Float Pixel Data element found"); + return DPM_NoPixelData; + } + return EC_Normal; + } + + OFCondition readSpecific(IODDoubleFloatingPointImagePixelModule& p, + const Uint16 numFrames, + const size_t numBytesFrame) + { + // Avoid compiler warning on unused parameter + (void)p; + unsigned long numTotalFloats = 0; + const Float64* pixData = NULL; + if (item.findAndGetFloat64Array(DCM_DoubleFloatPixelData, pixData, &numTotalFloats).good()) + { + if (numTotalFloats == numBytesFrame * numFrames / 8 /* we compare to 64 bit floats not bytes */) + { + for (Uint16 n=0; n < numFrames; n++) + { + DcmIODTypes::Frame* f = new DcmIODTypes::Frame; + if (f) + { + f->length = numBytesFrame; + f->pixData = new Uint8[f->length]; + memcpy(f->pixData, pixData + n*numBytesFrame/8, numBytesFrame); + map.m_Frames.push_back(f); + } + else + { + return EC_MemoryExhausted; + } + } + } + else + { + DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 8 << " pixels but Double Float Pixel Data has " << numTotalFloats << " pixels"); + return DPM_InvalidPixelInfo; + } + } + else + { + DCMPMAP_ERROR("No Double Float Pixel Data element found"); + return DPM_NoPixelData; + } + return EC_Normal; + } + + // Members, i.e. parameters to operator() + DcmItem& item; + DPMParametricMapIOD& map; +}; + + + +// ---------------------------------------------------------------------------- +// Class WriteVisitor: +// Class for adding DICOM pixel data bulk element based on type pixel data type +// ---------------------------------------------------------------------------- + +// Generic implementation, template specialization is done in inner +// DcmElementOf class +struct DPMParametricMapIOD::WriteVisitor +{ + // Inner class that implements the specializations for different + // pixel data types + template + class DcmElementOf; + + // Constructor, sets parameters the visitor works on in operator() + WriteVisitor(DcmItem& i, + DPMParametricMapIOD& m) + : item(i) + , map(m) + { + // Nothing else to do + } + + // + OFCondition operator()(OFmonostate) + { + DCMPMAP_ERROR("Could not write pixel data: Invalid pixel data type, only 16 bit integer as well as 32 and 64 bit float data are handled"); + return DPM_NoPixelData; + } + + template + OFCondition operator()(ImagePixel& pixel) + { + // Avoid compiler warning about unused parameter "pixel" + (void)pixel; + // Input data is checked before + Uint16 rows = 0; + Uint16 cols = 0; + map.getRows(rows); + map.getColumns(cols); + const size_t numFrames = map.m_Frames.size(); + const size_t numBytesFrame = map.m_Frames[0]->length; + const size_t numPixelsFrame = rows * cols; + // Creates the correct pixel data element, based on the image pixel module used. + // I.e. For integer data, the "Pixel Data" element is used, i.e. the DcmElement type + // instantiated by DcmElementOf is of DCMTK type DcmOtherByteOtherWord while for + // IODFloatingPointImagePixelModule which has floating point pixel data, DcmFloatingPointSingle + // is used. + DcmElementOf element; + // copy all frames into map's frame structure + if (OFTypename ImagePixel::value_type* ptr = element.getData(numBytesFrame * numFrames)) + { + for (size_t f = 0; f < numFrames; ++f) + { + memcpy(ptr, map.m_Frames[f]->pixData, numBytesFrame); + ptr += numPixelsFrame; + } + OFCondition result = element.put(item); + // Write generic (i.e. non pixel data-specific attributes) + return result.good() ? map.writeGeneric(item) : result; + } + return EC_MemoryExhausted; + } + + // Members, i.e. parameters to operator() + DcmItem& item; + DPMParametricMapIOD& map; +}; + + +// ---------------------------------------------------------------------------- +// Class WriteVisitor:DcmElementOf >: +// Offers creation and insertion for Pixel Data element as used for +// int-based pixel data. So far, Uint8, Sint8, Uint16 and Sint16 pixel +// data is supported (relates to OB/OW data type for DICOM Pixel data) +// ---------------------------------------------------------------------------- + +template +class DPMParametricMapIOD::WriteVisitor::DcmElementOf > +{ +public: + + DcmElementOf() + : m_pElement(new DcmOtherByteOtherWord(DCM_PixelData)) + { + // Nothing else to do + } + + PixelType* getData(const size_t count); + + OFCondition put(DcmItem& item) + { + OFCondition result = item.insert(m_pElement.get(), OFTrue); + if (result.good()) + m_pElement.release(); + return result; + } + +private: + + OFunique_ptr m_pElement; +}; + + +template<> +Uint8* DPMParametricMapIOD::WriteVisitor::DcmElementOf >::getData(const size_t size) +{ + if (m_pElement) + if (m_pElement->setVR(EVR_OB).good()) + { + Uint8* result; + if (m_pElement->createUint8Array(size, result).good()) + return result; + } + return OFnullptr; +} + + +template<> +Sint8* DPMParametricMapIOD::WriteVisitor::DcmElementOf >::getData(const size_t size) +{ + if (m_pElement) + if (m_pElement->setVR(EVR_OB).good()) + { + Uint8* result; + if (m_pElement->createUint8Array(size, result).good()) + return OFreinterpret_cast(Sint8*, result); + } + return OFnullptr; +} + + +template<> +Uint16* DPMParametricMapIOD::WriteVisitor::DcmElementOf >::getData(const size_t size /* num total pixels */) +{ + if (m_pElement) + if (m_pElement->setVR(EVR_OW).good()) + { + Uint16* result; + if (m_pElement->createUint16Array(size / 2, result).good()) + return result; + } + return OFnullptr; +} + + +template<> +Sint16* DPMParametricMapIOD::WriteVisitor::DcmElementOf >::getData(const size_t size) +{ + if (m_pElement) + if (m_pElement->setVR(EVR_OW).good()) + { + Uint16* result; + if (m_pElement->createUint16Array(size / 2, result).good()) + return OFreinterpret_cast(Sint16*, result); + } + return OFnullptr; +} + + +// ---------------------------------------------------------------------------- +// Class WriteVisitor:DcmElementOf >: +// Offers creation and insertion for Pixel Data element as used for +// 32 bit float-based pixel data as used in Parametric Map IOD +// ---------------------------------------------------------------------------- + +template<> +class DPMParametricMapIOD::WriteVisitor::DcmElementOf +{ +public: + DcmElementOf() + : m_pElement(new DcmFloatingPointSingleAlloc(DCM_FloatPixelData)) + { + + } + + Float32* getData(const size_t size) + { + if (m_pElement) + { + Float32* result; + if (m_pElement->createFloat32Array(size, result).good()) + return result; + } + return OFnullptr; + } + + OFCondition put(DcmItem& item) + { + OFCondition result = item.insert(m_pElement.get(), OFTrue); + if (result.good()) + m_pElement.release(); + return result; + } + +private: + + struct DcmFloatingPointSingleAlloc : DcmFloatingPointSingle + { + DcmFloatingPointSingleAlloc(const DcmTagKey& tag) + : DcmFloatingPointSingle(tag) + { + + } + + OFCondition createFloat32Array(const size_t size, + Float32*& result) + { + OFCondition status = createEmptyValue(size); + result = OFreinterpret_cast(Float32*, getValue()); + return status; + } + }; + + OFunique_ptr m_pElement; +}; + + +// ---------------------------------------------------------------------------- +// Class WriteVisitor:DcmElementOf >: +// Offers creation and insertion for Pixel Data element as used for +// 64 bit float-based pixel data as used in Parametric Map IOD. +// ---------------------------------------------------------------------------- + +template<> +class DPMParametricMapIOD::WriteVisitor::DcmElementOf +{ +public: + DcmElementOf() + : m_pElement(new DcmFloatingPointDoubleAlloc(DCM_DoubleFloatPixelData)) + { + + } + + Float64* getData(const size_t size) + { + if (m_pElement) + { + Float64* result; + if (m_pElement->createFloat64Array(size, result).good()) + return result; + } + return OFnullptr; + } + + OFCondition put(DcmItem& item) + { + OFCondition result = item.insert(m_pElement.get(), OFTrue); + if (result.good()) + m_pElement.release(); + return result; + } + +private: + + struct DcmFloatingPointDoubleAlloc : DcmFloatingPointDouble + { + DcmFloatingPointDoubleAlloc(const DcmTagKey& tag) + : DcmFloatingPointDouble(tag) + { + + } + + OFCondition createFloat64Array(const size_t size, Float64*& result) + { + OFCondition status = createEmptyValue(size); + result = OFreinterpret_cast(Float64*, getValue()); + return status; + } + }; + + OFunique_ptr m_pElement; +}; + + +// Helper "class" that returns Frames offering API to the pixel's frame bulk +// data by offering the dedicated data type, e.g. Float32 instead of the +// internally stored generic Uint8 array. +// +struct DPMParametricMapIOD::GetFramesVisitor +{ + GetFramesVisitor(DPMParametricMapIOD& m) + : map(m) + { + + } + + OFCondition operator()(OFmonostate) + { + return DPM_InvalidPixelData; + } + + template + Frames operator()(ImagePixel&) + { + return Frames(map); + } + + DPMParametricMapIOD& map; +}; + + +/** Helper "class" that returns Frames offering API to the pixel's frame bulk + * data by offering the dedicated data type, e.g. Float32 instead of the + * internally stored generic Uint8 array. + */ +struct DPMParametricMapIOD::ReadFramesVisitor +{ + ReadFramesVisitor(DcmItem& i, + DPMParametricMapIOD& m) + : map(m), item(i) + { + // Nothing else to do + } + + OFCondition operator()(OFmonostate) + { + return DPM_InvalidPixelData; + } + + template + OFCondition operator()(ImagePixel&) + { + return Frames(map); + } + + // Members, i.e. parameters to operator() + DPMParametricMapIOD& map; + DcmItem& item; +}; + + + +template +DPMParametricMapIOD::Frames::Frames(DPMParametricMapIOD& map) +: m_Map(map) +{ + +} + + +template +OFCondition DPMParametricMapIOD::Frames::addFrame(PixelType* data, + const size_t numPixels, + const OFVector& perFrameInformation) +{ + OFCondition result; + if (data && numPixels) + { + if (!perFrameInformation.empty()) + { + OFunique_ptr f(new DcmIODTypes::Frame); + if (f) + { + f->length = numPixels * sizeof(PixelType); + f->pixData = new Uint8[f->length]; + memcpy(f->pixData, data, f->length); + m_Map.m_Frames.push_back(f.release()); + OFVector::const_iterator fg = perFrameInformation.begin(); + while ( result.good() && (fg != perFrameInformation.end()) ) + { + result = m_Map.m_FGInterface.addPerFrame(m_Map.m_Frames.size(), **fg); + if (result.bad()) + { + DCMPMAP_ERROR("Could not add functional group: " << DcmFGTypes::FGType2OFString((*fg)->getType())); + break; + } + ++fg; + } + } + } + } + // Clean up if necessary + if (result.bad()) + m_Map.m_FGInterface.deleteFrame(m_Map.m_Frames.size()); + return result; +} + + +template +PixelType* DPMParametricMapIOD::Frames::getFrame(const size_t frameNumber) +{ + if (frameNumber < m_Map.m_Frames.size()) + { + return (PixelType*)(m_Map.m_Frames[frameNumber]->pixData); + } + return NULL; +} + + +// Protected constructor +DPMParametricMapIOD::DPMParametricMapIOD() +: DPMParametricMapBase() +, m_ContentIdentification() +, m_Frames() +{ +} + + +// Protected constructor +template +DPMParametricMapIOD::DPMParametricMapIOD(OFin_place_type_t(ImagePixel)) +: DPMParametricMapBase(OFin_place) +, m_ContentIdentification() +, m_Frames() +{ +} + + +// Static method used to create a new Parametric Map IOD object +template +OFvariant DPMParametricMapIOD::create(const OFString& modality, + const OFString& seriesNumber, + const OFString& instanceNumber, + const Uint16 rows, + const Uint16 columns, + const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo, + const ContentIdentificationMacro& contentIdentification, + const OFString& imageFlavor, + const OFString& derivedPixelContrast, + const DPMTypes::ContentQualification& contentQualification) +{ + DPMParametricMapIOD map(OFin_place); + + OFCondition status = SetImagePixelModuleVisitor(rows, columns)(*OFget(&map.getImagePixel())); + if (status.bad()) + return status; + + status = map.init + ( + modality, + seriesNumber, + instanceNumber, + equipmentInfo, + contentIdentification, + imageFlavor, + derivedPixelContrast, + contentQualification + ); + + if(status.bad()) + return status; + + return map; +} + + +OFCondition DPMParametricMapIOD::init(const OFString& modality, + const OFString& seriesNumber, + const OFString& instanceNumber, + const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo, + const ContentIdentificationMacro& contentIdentification, + const OFString& imageFlavor, + const OFString& derivedPixelContrast, + const DPMTypes::ContentQualification& contentQualification) +{ + if (!equipmentInfo.isDataComplete()) + { + DCMPMAP_ERROR("Equipment info incomplete"); + return DPM_InvalidAttributeValue; + } + + OFCondition status = OFconst_cast(ContentIdentificationMacro*, &contentIdentification)->check(); + if (status.bad()) + { + DCMPMAP_ERROR("Content identification is invalid: " << status.text()); + return DPM_InvalidAttributeValue; + } + + status = OFconst_cast(ContentIdentificationMacro*, &contentIdentification)->check(); + if (imageFlavor.empty() || derivedPixelContrast.empty()) + { + DCMPMAP_ERROR + ( + "Image Type value 3 (Image Flavor) and 4 (Derived Pixel Contrast) must be set but are " + << imageFlavor << "/" << derivedPixelContrast + ); + return DPM_InvalidAttributeValue; + } + + if (!DPMTypes::cqValid(contentQualification)) + { + DCMPMAP_ERROR("Content Qualification not set"); + return DPM_InvalidAttributeValue; + } + + // All data is valid, copy to object + status = getIODEnhGeneralEquipmentModule().set(equipmentInfo); + if (status.bad()) + { + DCMPMAP_ERROR("Error setting equipment info: " << status.text()); + return DPM_InvalidAttributeValue; + } + + m_ContentIdentification = contentIdentification; + OFStringStream ss; + ss << "DERIVED\\PRIMARY\\" << imageFlavor << "\\" << derivedPixelContrast; + OFSTRINGSTREAM_GETOFSTRING(ss, imgType); + + status = getIODGeneralImageModule().setImageType(imgType); + if (status.bad()) + { + DCMPMAP_ERROR("Error setting Image Type: " << status.text()); + return DPM_InvalidAttributeValue; + } + + status = m_DPMParametricMapSeriesModule.setModality(modality); + if (status.bad()) + { + + DCMPMAP_ERROR("Could not set modality value \"" << modality << "\": " << status.text()); + return DPM_InvalidAttributeValue; + } + + status = m_DPMParametricMapSeriesModule.setSeriesNumber(seriesNumber); + if (status.bad()) + { + DCMPMAP_ERROR("Could not set Series Number: " << status.text()); + return DPM_InvalidAttributeValue; + } + + status = m_IODMultiFrameFGModule.setInstanceNumber(instanceNumber); + if (status.bad()) + return status; + + m_DPMParametricMapImageModule.setContentQualification(DPMTypes::cq2Str(contentQualification)); + m_DPMParametricMapImageModule.setRecognizableVisualFeatures("YES"); + m_DPMParametricMapImageModule.setBurnedInAnnotation("NO"); + m_DPMParametricMapImageModule.setLossyImageCompression("00"); + m_DPMParametricMapImageModule.setPresentationLUTShape("IDENTITY"); + getSOPCommon().setSOPClassUID(UID_ParametricMapStorage); + DcmIODUtil::setContentDateAndTimeNow(m_IODMultiFrameFGModule); + + return EC_Normal; +} + + +OFCondition DPMParametricMapIOD::read(DcmItem& dataset) +{ + return OFvisit(ReadVisitor(dataset,*this),getImagePixel()); + +} + + +OFCondition DPMParametricMapIOD::write(DcmItem& dataset) +{ + if (!check()) + return DPM_InvalidAttributeValue; + return OFvisit(WriteVisitor(dataset,*this),getImagePixel()); +} + + +OFvariant DPMParametricMapIOD::loadDataset(DcmDataset& dataset) +{ + OFString sopClass; + DPMParametricMapIOD *map = NULL; + if (dataset.findAndGetOFStringArray(DCM_SOPClassUID, sopClass).good()) + { + if (sopClass == UID_ParametricMapStorage) + { + DcmElement *elem = NULL; + if (dataset.findAndGetElement(DCM_PixelData, elem).good()) + { + Uint16 pr = 0; + if (dataset.findAndGetUint16(DCM_PixelRepresentation, pr).good()) + { + if (pr == 0) + { + map = new DPMParametricMapIOD(OFin_place >); + } + else + { + map = new DPMParametricMapIOD(OFin_place >); + } + } + else + { + DCMPMAP_WARN("Pixel Data element found but no Pixel Representation set, assuming 16 bit unsigned integer data"); + map = new DPMParametricMapIOD(OFin_place >); + } + } + else if (dataset.findAndGetElement(DCM_FloatPixelData, elem).good()) + { + map = new DPMParametricMapIOD(OFin_place); + } + else if (dataset.findAndGetElement(DCM_DoubleFloatPixelData, elem).good()) + { + map = new DPMParametricMapIOD(OFin_place); + } + else + { + return DPM_NoPixelData; + } + if (map == NULL) + { + return EC_MemoryExhausted; + } + } + else + { + DCMPMAP_ERROR("Invalid SOP Class: " << sopClass << ", only Parametric Map Storage (1.2.840.10008.5.1.4.1.1.30) supported"); + return DPM_InvalidSOPClass; + } + } + OFCondition result = OFvisit(ReadVisitor(dataset, *map), map->getImagePixel()); + if (result.good()) + return map; + else + return result; +} + + +OFvariant DPMParametricMapIOD::loadFile(const OFString& filename) +{ + DcmFileFormat dcmff; + OFCondition cond = dcmff.loadFile(filename.c_str()); + OFvariant result; + if (cond.good()) + { + result = loadDataset( *(dcmff.getDataset()) ); + return result; + } + else + { + return cond; + } +} + + +DPMParametricMapIOD::~DPMParametricMapIOD() +{ + DcmIODUtil::freeContainer(m_Frames); + // nothing else to do for now +} + + +OFCondition DPMParametricMapIOD::addForAllFrames(const FGBase& group) +{ + return m_FGInterface.addShared(group); +} + + +OFBool DPMParametricMapIOD::check() +{ + OFString val; + m_DPMParametricMapImageModule.getRecognizableVisualFeatures(val); + if (DPMTypes::rvfValid(DPMTypes::str2Rvf(val))) + { + m_DPMParametricMapImageModule.getContentQualification(val); + if (DPMTypes::cqValid(DPMTypes::str2Cq(val))) + { + if (!m_Frames.empty()) + { + return OFTrue; + } + else + { + DCMPMAP_ERROR("No frame data defined in Parametric Map"); + } + } + else + { + DCMPMAP_ERROR("Invalid value for Recognizable Visual Features: " << val); + } + } + else + { + DCMPMAP_ERROR("Invalid value for Content Qualification" << val); + } + return OFFalse; +} + + +OFCondition DPMParametricMapIOD::getColumns(Uint16& cols) +{ + return getImagePixel().getColumns(cols); +} + + +OFCondition DPMParametricMapIOD::getRows(Uint16& rows) +{ + return getImagePixel().getRows(rows); +} + + +size_t DPMParametricMapIOD::getNumberOfFrames() const +{ + return OFconst_cast(DPMParametricMapIOD*,this)->m_FGInterface.getNumberOfFrames(); +} + + +OFCondition DPMParametricMapIOD::setRecognizableVisualFeatures(const DPMTypes::RecognizableVisibleFeatures yesOrNo) +{ + return DPMTypes::rvfValid(yesOrNo) + ? + m_DPMParametricMapImageModule.setRecognizableVisualFeatures(DPMTypes::rvf2Str(yesOrNo)) + : + DPM_InvalidAttributeValue + ; +} + + +OFCondition DPMParametricMapIOD::readGeneric(DcmItem& dataset) +{ + OFCondition result = DPMParametricMapBase::read(dataset); + if (result.good()) + result = m_ContentIdentification.read(dataset); + return result; +} + + +OFCondition DPMParametricMapIOD::writeGeneric(DcmItem& dataset) +{ + getFrameOfReference().ensureFrameOfReferenceUID(); + m_IODMultiFrameFGModule.setNumberOfFrames(m_Frames.size()); + OFCondition result = m_ContentIdentification.write(dataset); + if (result.good()) + { + result = DPMParametricMapBase::write(dataset); + } + return result; +} + + +DPMTypes::ContentQualification DPMParametricMapIOD::getContentQualification() +{ + OFString val; + m_DPMParametricMapImageModule.getContentQualification(val); + return DPMTypes::str2Cq(val); +} + + +DPMTypes::RecognizableVisibleFeatures DPMParametricMapIOD::getRecognizableVisualFeatures() +{ + OFString val; + DPMParametricMapIOD::m_DPMParametricMapImageModule.getRecognizableVisualFeatures(val); + return DPMTypes::str2Rvf(val); +} + + +DPMParametricMapIOD::FramesType DPMParametricMapIOD::getFrames() +{ + return OFvisit(GetFramesVisitor(*this),getImagePixel()); +} + + +OFCondition DPMParametricMapIOD::decompress(DcmDataset& dset) +{ + DcmXfer xfer = dset.getOriginalXfer(); + OFCondition result; + // If the original transfer syntax could have been lossy, print warning + if (dset.hasRepresentation(EXS_LittleEndianExplicit, NULL)) + { + if ( xfer.isEncapsulated() && (xfer.getXfer() != EXS_RLELossless) && (xfer.getXfer() != EXS_DeflatedLittleEndianExplicit) ) + { + DCMPMAP_WARN("Dataset has been compressed using a (possibly) lossy compression scheme (ignored)"); + } + } + // If the original transfer is encapsulated and we do not already have an uncompressed version, decompress or reject the file + else if (xfer.isEncapsulated()) + { + // RLE compression is fine (truly lossless). Deflated is handled internally by DCMTK. + if (xfer.getXfer() == EXS_RLELossless) + { + DCMPMAP_DEBUG("DICOM file is RLE-compressed, converting to uncompressed transfer syntax first"); + result = DcmIODUtil::decompress(dset); + } + else // We do not accept any transfer syntax that could be lossy compressed + { + DCMPMAP_ERROR("Transfer syntax " << DcmXfer(xfer).getXferName() << " uses lossy compression, not supported for Parametric Map objects!"); + result = IOD_EC_CannotDecompress; + } + } + return result; +} + +// Explicit instantiations using all permitted Parametric Map data types +template class DPMParametricMapIOD::Frames; +template class DPMParametricMapIOD::Frames; +template class DPMParametricMapIOD::Frames; +template class DPMParametricMapIOD::Frames; + +// Helper macro to not to write the same thing multiple times +#define INSTANTIATE_CREATE(T) template DCMTK_DCMPMAP_EXPORT OFvariant\ +DPMParametricMapIOD::create(const OFString& modality,\ + const OFString& seriesNumber,\ + const OFString& instanceNumber,\ + const Uint16 rows,\ + const Uint16 columns,\ + const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,\ + const ContentIdentificationMacro& contentIdentification,\ + const OFString& imageFlavor,\ + const OFString& derivedPixelContrast,\ + const DPMTypes::ContentQualification& contentQualification) + +// Instantiate all four permitted create() methods +INSTANTIATE_CREATE(IODImagePixelModule); +INSTANTIATE_CREATE(IODImagePixelModule); +INSTANTIATE_CREATE(IODFloatingPointImagePixelModule); +INSTANTIATE_CREATE(IODDoubleFloatingPointImagePixelModule); diff --git a/dcmpmap/libsrc/dpmtypes.cc b/dcmpmap/libsrc/dpmtypes.cc new file mode 100644 index 00000000..cce411c9 --- /dev/null +++ b/dcmpmap/libsrc/dpmtypes.cc @@ -0,0 +1,111 @@ +/* + * + * Copyright (C) 2016, Open Connections GmbH + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmpmap + * + * Author: Michael Onken + * + * Purpose: Class for managing common paramatric map specific types. + * + */ + +#include "dcmtk/config/osconfig.h" +#include "dcmtk/dcmdata/dcerror.h" +#include "dcmtk/dcmpmap/dpmtypes.h" + +OFLogger DCM_dcmpmapLogger = OFLog::getLogger("dcmtk.dcmpmap"); + +/*---------------------------------* + * constant definitions + *---------------------------------*/ + +// conditions +makeOFConditionConst(DPM_InvalidDimensions, OFM_dcmpmap, 1, OF_error, "Invalid Dimensions"); +makeOFConditionConst(DPM_InvalidAttributeValue, OFM_dcmpmap, 2, OF_error, "Invalid Attribute Value"); +makeOFConditionConst(DPM_InvalidPixelInfo, OFM_dcmpmap, 3, OF_error, "Invalid information in pixel data or related attributes"); +makeOFConditionConst(DPM_InvalidPixelData, OFM_dcmpmap, 4, OF_error, "Invalid pixel data"); +makeOFConditionConst(DPM_NoPixelData, OFM_dcmpmap, 5, OF_error, "No pixel data found"); +makeOFConditionConst(DPM_InvalidSOPClass, OFM_dcmpmap, 6, OF_error, "SOP Class not supported"); + +OFString DPMTypes::rvf2Str(const RecognizableVisibleFeatures rvf) +{ + switch (rvf) + { + case RVF_NO: return "NO"; + case RVF_YES: return "YES"; + default: return ""; + } +} + +DPMTypes::RecognizableVisibleFeatures DPMTypes::str2Rvf(const OFString& rvf) +{ + if (rvf == "NO") + return RVF_NO; + if (rvf == "YES") + return RVF_YES; + else + return RVF_UNKNOWN; +} + + +OFString DPMTypes::cq2Str(const DPMTypes::ContentQualification cq) +{ + switch (cq) + { + case CQ_PRODUCT: return "PRODUCT"; + case CQ_RESEARCH: return "RESEARCH"; + case CQ_SERVICE: return "SERVICE"; + case CQ_UNKNOWN: return ""; + } + return ""; +} + + +DPMTypes::ContentQualification DPMTypes::str2Cq(const OFString& cq) +{ + if (cq == "PRODUCT") + return CQ_PRODUCT; + if (cq == "RESEARCH") + return CQ_RESEARCH; + if (cq == "SERVICE") + return CQ_SERVICE; + else + return CQ_UNKNOWN; +} + + + +OFBool DPMTypes::cqValid(const DPMTypes::ContentQualification cq) +{ + switch (cq) + { + case CQ_PRODUCT: + case CQ_RESEARCH: + case CQ_SERVICE: return OFTrue; + case CQ_UNKNOWN: return OFFalse; + } + return OFFalse; +} + + +OFBool DPMTypes::rvfValid(const DPMTypes::RecognizableVisibleFeatures rvf) +{ + switch (rvf) + { + case RVF_NO: return OFTrue; + case RVF_YES: return OFTrue; + case RVF_UNKNOWN: return OFFalse; + } + return OFFalse; +} + diff --git a/dcmpmap/tests/Makefile.dep b/dcmpmap/tests/Makefile.dep new file mode 100644 index 00000000..c2b87ff9 --- /dev/null +++ b/dcmpmap/tests/Makefile.dep @@ -0,0 +1,548 @@ +dump_pmp.o: dump_pmp.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \ + ../../dcmfg/include/dcmtk/dcmfg/fg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ + ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfor.h \ + ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \ + ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \ + ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \ + ../include/dcmtk/dcmpmap/dpmdef.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \ + ../include/dcmtk/dcmpmap/dpmtypes.h +make_pmp.o: make_pmp.cc ../../ofstd/include/dcmtk/ofstd/oftest.h \ + ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \ + ../../dcmfg/include/dcmtk/dcmfg/fg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ + ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfor.h \ + ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \ + ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \ + ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \ + ../include/dcmtk/dcmpmap/dpmdef.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \ + ../include/dcmtk/dcmpmap/dpmtypes.h +rw_pmp.o: rw_pmp.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ + ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ + ../../ofstd/include/dcmtk/ofstd/ofmem.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \ + ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \ + ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \ + ../../dcmfg/include/dcmtk/dcmfg/fg.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \ + ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \ + ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ + ../../ofstd/include/dcmtk/ofstd/ofoption.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ + ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfor.h \ + ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \ + ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ + ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ + ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \ + ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \ + ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ + ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \ + ../include/dcmtk/dcmpmap/dpmdef.h \ + ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \ + ../include/dcmtk/dcmpmap/dpmtypes.h +tests.o: tests.cc ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/oftest.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h diff --git a/dcmpmap/tests/Makefile.in b/dcmpmap/tests/Makefile.in new file mode 100644 index 00000000..ff99234b --- /dev/null +++ b/dcmpmap/tests/Makefile.in @@ -0,0 +1,29 @@ +# +# Makefile for dcmpmap/tests +# + +@SET_MAKE@ + +SHELL = /bin/sh +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +configdir = @top_srcdir@/@configdir@ + +include $(configdir)/@common_makefile@ + + +all: + +check: + +check-exhaustive: + +install: + +clean: + rm -f $(TRASH) + +distclean: + rm -f $(DISTTRASH) + +dependencies: diff --git a/dcmpstat/apps/dcmprscu.cc b/dcmpstat/apps/dcmprscu.cc index 96bd1468..bccc9efc 100644 --- a/dcmpstat/apps/dcmprscu.cc +++ b/dcmpstat/apps/dcmprscu.cc @@ -564,9 +564,13 @@ static OFCondition updateJobList( { currentName = dp->d_name; #endif - if ((prefix == currentName.substr(0, prefixSize)) && - (currentName.size() > postfixSize) && - (postfix == currentName.substr(currentName.size()-postfixSize))) + if + ( + currentName.size() > (prefixSize + postfixSize) && + prefix == currentName.substr(0, prefixSize) && + postfix == currentName.substr(currentName.size()-postfixSize) && + currentName.find_first_not_of("1234567890",prefixSize) == (currentName.size() - postfixSize) + ) { // name matches pattern jobName = spoolFolder; diff --git a/dcmpstat/libsrc/dviface.cc b/dcmpstat/libsrc/dviface.cc index 5f81d37e..652931cb 100644 --- a/dcmpstat/libsrc/dviface.cc +++ b/dcmpstat/libsrc/dviface.cc @@ -1359,16 +1359,23 @@ OFBool DVInterface::createIndexCache() DVPSInstanceType type = DVPSI_image; if (record.Modality != NULL) { - if (strcmp(record.Modality, "PR") == 0) + if (DSRTypes::sopClassUIDToDocumentType(record.SOPClassUID) != DSRTypes::DT_invalid) + type = DVPSI_structuredReport; + else if (strcmp(record.Modality, "PR") == 0) type = DVPSI_presentationState; - if (strcmp(record.Modality, "SR") == 0) + else if (strcmp(record.Modality, "SR") == 0) type = DVPSI_structuredReport; else if (strcmp(record.Modality, "HC") == 0) type =DVPSI_hardcopyGrayscale; else if (strcmp(record.Modality, "STORED_PRINT") == 0) type = DVPSI_storedPrint; } - series->List.addItem(record.SOPInstanceUID, counter, record.hstat, type, record.ImageSize, record.filename); + series->List.addItem(record.SOPInstanceUID, + counter, + OFstatic_cast(DVIFhierarchyStatus, record.hstat), + type, + record.ImageSize, + record.filename); if (series->Type == DVPSI_image) series->Type = type; // series contains only one type of instances } @@ -1953,7 +1960,9 @@ OFCondition DVInterface::instanceReviewed(int pos) lockDatabase(); OFBool wasNew = newInstancesReceived(); if (pHandle == NULL) return EC_IllegalCall; + pHandle->DB_unlock(); OFCondition result = pHandle->instanceReviewed(pos); + pHandle->DB_lock(OFFalse); if (!wasNew) resetDatabaseReferenceTime(); releaseDatabase(); return result; diff --git a/dcmpstat/libsrc/dvpshlp.cc b/dcmpstat/libsrc/dvpshlp.cc index 735a613d..252ba2f9 100644 --- a/dcmpstat/libsrc/dvpshlp.cc +++ b/dcmpstat/libsrc/dvpshlp.cc @@ -60,7 +60,7 @@ OFCondition DVPSHelper::loadFileFormat(const char *filename, DcmFileFormat *&fileformat) { fileformat = new DcmFileFormat; - OFCondition result = fileformat->loadFile(filename); + OFCondition result = fileformat->loadFile(OFFilename(filename,OFTrue)); if (result.bad()) { diff --git a/dcmqrdb/docs/dcmqrscp.man b/dcmqrdb/docs/dcmqrscp.man index 8150a6b5..47f8e763 100644 --- a/dcmqrdb/docs/dcmqrscp.man +++ b/dcmqrdb/docs/dcmqrscp.man @@ -767,6 +767,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 diff --git a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h index 956c1d93..c2997011 100644 --- a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h +++ b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h @@ -123,6 +123,28 @@ enum DB_KEY_CLASS #define SIZEOF_IDXRECORD (sizeof (IdxRecord)) #define SIZEOF_STUDYDESC (sizeof (StudyDescRecord) * MAX_MAX_STUDIES) +struct DCMTK_DCMQRDB_EXPORT DB_SerializedTagKey +{ + inline DB_SerializedTagKey() {} + inline DB_SerializedTagKey(const DcmTagKey& rhs) { *this = rhs; } + inline DB_SerializedTagKey& operator=(const DcmTagKey& tk) { key[0] = tk.getGroup(); key[1] = tk.getElement(); return *this; } + inline operator DcmTagKey() const { return DcmTagKey( key[0], key[1] ); } + inline bool operator==(const DB_SerializedTagKey& rhs) const { return key[0] == rhs.key[0] && key[1] == rhs.key[1]; } + Uint16 key[2]; +}; + +struct DCMTK_DCMQRDB_EXPORT DB_SerializedCharPtr +{ + inline DB_SerializedCharPtr(char* p) { ptr.p = p; } + inline DB_SerializedCharPtr& operator=(char* p) { ptr.p = p; return *this; } + inline operator char*() const { return ptr.p; } + union + { + char* p; + Uint64 placeholder; + } ptr ; +}; + /** this class provides a primitive interface for handling a flat DICOM element, * similar to DcmElement, but only for use within the database module */ @@ -133,13 +155,13 @@ public: DB_SmallDcmElmt(); /// pointer to the value field - char* PValueField ; + DB_SerializedCharPtr PValueField ; /// value length in bytes Uint32 ValueLength ; /// attribute tag - DcmTagKey XTag ; + DB_SerializedTagKey XTag ; private: /// private undefined copy constructor @@ -240,20 +262,20 @@ struct DCMTK_DCMQRDB_EXPORT StudyDescRecord char StudyInstanceUID [UI_MAX_LENGTH+1] ; /// combined size (in bytes) of all images of this study in the database - long StudySize ; + Uint32 StudySize ; /// timestamp for last update of this study. Format: output of time(2) converted to double. double LastRecordedDate ; /// number of images of this study in the database - int NumberofRegistratedImages ; + Uint32 NumberofRegistratedImages ; }; struct DCMTK_DCMQRDB_EXPORT ImagesofStudyArray { - int idxCounter ; + Uint32 idxCounter ; double RecordedDate ; - long ImageSize ; + Uint32 ImageSize ; }; @@ -375,7 +397,7 @@ struct DCMTK_DCMQRDB_EXPORT IdxRecord char PerformingPhysicianName [PN_MAX_LENGTH+1] ; char PresentationLabel [CS_LABEL_MAX_LENGTH+1] ; - DVIFhierarchyStatus hstat; + char hstat; // Not related to any particular DICOM attribute ! char InstanceDescription [DESCRIPTION_MAX_LENGTH+1] ; diff --git a/dcmrt/apps/Makefile.dep b/dcmrt/apps/Makefile.dep index f9700e93..f8b17858 100644 --- a/dcmrt/apps/Makefile.dep +++ b/dcmrt/apps/Makefile.dep @@ -118,7 +118,8 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ @@ -128,16 +129,17 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -151,17 +153,17 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ ../include/dcmtk/dcmrt/seq/drtrdros.h \ ../include/dcmtk/dcmrt/seq/drtrwvms.h \ ../include/dcmtk/dcmrt/seq/drtqds.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../include/dcmtk/dcmrt/seq/drtrsts.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -183,9 +185,13 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtssrs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drtimage.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drtimage.h \ ../include/dcmtk/dcmrt/seq/drtcbars.h \ ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \ ../include/dcmtk/dcmrt/seq/drtds.h ../include/dcmtk/dcmrt/seq/drtes.h \ @@ -194,8 +200,9 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \ ../include/dcmtk/dcmrt/seq/drtmacds.h \ - ../include/dcmtk/dcmrt/seq/drtcss.h \ + ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtrims.h \ ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ + ../include/dcmtk/dcmrt/seq/drtsis.h ../include/dcmtk/dcmrt/seq/drtsins.h \ ../include/dcmtk/dcmrt/seq/drtvls.h ../include/dcmtk/dcmrt/drtplan.h \ ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \ ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \ @@ -225,10 +232,11 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtbldts.h \ ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drtstrct.h \ ../include/dcmtk/dcmrt/seq/drtrros.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ ../include/dcmtk/dcmrt/seq/drtrpps.h \ ../include/dcmtk/dcmrt/seq/drtrecs.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ ../include/dcmtk/dcmrt/seq/drtrrros.h \ ../include/dcmtk/dcmrt/seq/drtspccs.h ../include/dcmtk/dcmrt/drttreat.h \ ../include/dcmtk/dcmrt/seq/drtfgss.h \ @@ -238,6 +246,7 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drttscds.h \ ../include/dcmtk/dcmrt/seq/drttsmds.h ../include/dcmtk/dcmrt/drtionpl.h \ ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \ + ../include/dcmtk/dcmrt/seq/drtddps.h \ ../include/dcmtk/dcmrt/seq/drtiblds.h \ ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \ ../include/dcmtk/dcmrt/seq/drticps.h \ @@ -258,6 +267,7 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drttsibs.h \ ../include/dcmtk/dcmrt/seq/drtas7.h \ ../include/dcmtk/dcmrt/seq/drtbldls.h \ + ../include/dcmtk/dcmrt/seq/drtdddps.h \ ../include/dcmtk/dcmrt/seq/drticpds.h \ ../include/dcmtk/dcmrt/seq/drtcpas.h \ ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ diff --git a/dcmrt/include/dcmtk/dcmrt/drtdose.h b/dcmrt/include/dcmtk/dcmrt/drtdose.h index 6f902871..4614ee43 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtdose.h +++ b/dcmrt/include/dcmtk/dcmrt/drtdose.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDoseIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,6 +23,7 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdvhs.h" // for DVHSequence @@ -31,6 +32,7 @@ #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence #include "dcmtk/dcmrt/seq/drtfes.h" // for FrameExtractionSequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtiis.h" // for IconImageSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence @@ -38,7 +40,9 @@ #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence #include "dcmtk/dcmrt/seq/drtmls.h" // for ModalityLUTSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -55,7 +59,6 @@ #include "dcmtk/dcmrt/seq/drtrwvms.h" // for RealWorldValueMappingSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrfors.h" // for ReferencedFrameOfReferenceSequence -#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence #include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence @@ -70,9 +73,12 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence -#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtssrs.h" // for StructureSetROISequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTDoseIOD @@ -349,6 +355,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get AuthorizationEquipmentCertificationNumber (0100,0426) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -489,6 +502,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getClinicalTrialTimePointID(OFString &value, const signed long pos = 0) const; + /** get ColorSpace (0028,2002) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getColorSpace(OFString &value, const signed long pos = 0) const; + /** get Columns (0028,0011) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -579,13 +599,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; - /** get DerivationDescription (0008,2111) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; - /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -870,6 +883,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getLargestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -925,6 +945,41 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1092,6 +1147,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1099,6 +1161,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1106,6 +1175,20 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1120,6 +1203,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1183,6 +1273,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1329,6 +1426,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get PresentationLUTShape (2050,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1630,6 +1734,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getSmallestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1679,6 +1790,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition getStereoPairsPresent(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StructureSetDate (3006,0008) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1846,6 +1978,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1942,6 +2086,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTFrameExtractionSequence &getFrameExtractionSequence() const { return FrameExtractionSequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -2026,6 +2182,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + /** get ModalityLUTSequence (0028,3000) * @return reference to sequence element */ @@ -2038,6 +2206,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTModalityLUTSequence &getModalityLUTSequence() const { return ModalityLUTSequence; } + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -2230,18 +2410,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTReferencedFrameOfReferenceSequence &getReferencedFrameOfReferenceSequence() const { return ReferencedFrameOfReferenceSequence; } - /** get ReferencedImageSequence (0008,1140) - * @return reference to sequence element - */ - DRTReferencedImageSequence &getReferencedImageSequence() - { return ReferencedImageSequence; } - - /** get ReferencedImageSequence (0008,1140) - * @return const reference to sequence element - */ - const DRTReferencedImageSequence &getReferencedImageSequence() const - { return ReferencedImageSequence; } - /** get ReferencedInstanceSequence (0008,114a) * @return reference to sequence element */ @@ -2410,17 +2578,41 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } - /** get SourceImageSequence (0008,2112) + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) * @return reference to sequence element */ - DRTSourceImageSequence &getSourceImageSequence() - { return SourceImageSequence; } + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } - /** get SourceImageSequence (0008,2112) + /** get StrainStockSequence (0010,0216) * @return const reference to sequence element */ - const DRTSourceImageSequence &getSourceImageSequence() const - { return SourceImageSequence; } + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } /** get StructureSetROISequence (3006,0020) * @return reference to sequence element @@ -2446,6 +2638,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const { return StudiesContainingOtherReferencedInstancesSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -2504,6 +2708,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set AuthorizationEquipmentCertificationNumber (0100,0426) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2644,6 +2855,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setClinicalTrialTimePointID(const OFString &value, const OFBool check = OFTrue); + /** set ColorSpace (0028,2002) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue); + /** set Columns (0028,0011) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -2714,13 +2932,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); - /** set DerivationDescription (0008,2111) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); - /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2945,6 +3156,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setLargestImagePixelValue(const Uint16 value, const unsigned long pos = 0); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -2987,6 +3205,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -3127,6 +3366,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -3134,6 +3380,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -3141,6 +3394,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -3155,6 +3415,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -3211,6 +3478,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -3330,6 +3604,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set PresentationLUTShape (2050,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -3575,6 +3856,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setSmallestImagePixelValue(const Uint16 value, const unsigned long pos = 0); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -3617,6 +3905,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD */ virtual OFCondition setStereoPairsPresent(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StructureSetDate (3006,0008) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -3744,6 +4053,12 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -3774,6 +4089,16 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -3786,6 +4111,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -3861,8 +4190,26 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -3907,6 +4254,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -3964,6 +4313,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -3994,18 +4345,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmTime AcquisitionTime; /// AcquisitionDateTime (0008,002a) vr=DT, vm=1, type=3 DcmDateTime AcquisitionDateTime; - /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 - DRTReferencedImageSequence ReferencedImageSequence; - /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 - DcmShortText DerivationDescription; - // DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 - // - also defined in: RTDoseModule - // DRTDerivationCodeSequence DerivationCodeSequence; - /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 - DRTSourceImageSequence SourceImageSequence; - // ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 - // - also defined in: RTDoseModule - // DRTReferencedInstanceSequence ReferencedInstanceSequence; /// ImagesInAcquisition (0020,1002) vr=IS, vm=1, type=3 DcmIntegerString ImagesInAcquisition; /// ImageComments (0020,4000) vr=LT, vm=1, type=3 @@ -4068,8 +4407,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD // PixelRepresentation (0028,0103) vr=US, vm=1, type=1 // - also defined in: RTDoseModule // DcmUnsignedShort PixelRepresentation; - /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C - DcmPixelData PixelData; /// PlanarConfiguration (0028,0006) vr=US, vm=1, type=1C DcmUnsignedShort PlanarConfiguration; /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C @@ -4092,6 +4429,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmOtherByteOtherWord BluePaletteColorLookupTableData; /// ICCProfile (0028,2000) vr=OB, vm=1, type=3 DcmOtherByteOtherWord ICCProfile; + /// ColorSpace (0028,2002) vr=CS, vm=1, type=3 + DcmCodeString ColorSpace; + /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C + DcmPixelData PixelData; /// PixelDataProviderURL (0028,7fe0) vr=UR, vm=1, type=1C DcmUniversalResourceIdentifierOrLocator PixelDataProviderURL; /// PixelPaddingRangeLimit (0028,0121) vr=US/SS, vm=1, type=1C @@ -4201,10 +4542,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD /// TissueHeterogeneityCorrection (3004,0014) vr=CS, vm=1-3, type=3 DcmCodeString TissueHeterogeneityCorrection; /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 - /// - also defined in: GeneralImageModule DRTDerivationCodeSequence DerivationCodeSequence; /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 - /// - also defined in: GeneralImageModule DRTReferencedInstanceSequence ReferencedInstanceSequence; // --- RTDVHModule (U) --- @@ -4272,6 +4611,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drtimage.h b/dcmrt/include/dcmtk/dcmrt/drtimage.h index 3b7b1549..1edb0e5b 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtimage.h +++ b/dcmrt/include/dcmtk/dcmrt/drtimage.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTImageIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,6 +23,7 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtcbars.h" // for ContrastBolusAdministrationRouteSequence #include "dcmtk/dcmrt/seq/drtbas.h" // for ContrastBolusAgentSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence @@ -35,6 +36,7 @@ #include "dcmtk/dcmrt/seq/drtes.h" // for ExposureSequence #include "dcmtk/dcmrt/seq/drtfms.h" // for FluenceMapSequence #include "dcmtk/dcmrt/seq/drtfes.h" // for FrameExtractionSequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtiis.h" // for IconImageSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence @@ -42,8 +44,10 @@ #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence #include "dcmtk/dcmrt/seq/drtmls.h" // for ModalityLUTSequence #include "dcmtk/dcmrt/seq/drtmacds.h" // for MultiplexedAudioChannelsDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -69,7 +73,12 @@ #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence #include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence #include "dcmtk/dcmrt/seq/drtvls.h" // for VOILUTSequence @@ -186,6 +195,14 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFBool isFrameOfReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether ContrastBolusModule (C) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -337,6 +354,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get ApprovalStatus (300e,0002) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -512,6 +536,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getClinicalTrialTimePointID(OFString &value, const signed long pos = 0) const; + /** get ColorSpace (0028,2002) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getColorSpace(OFString &value, const signed long pos = 0) const; + /** get Columns (0028,0011) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -741,6 +772,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const; + /** get ExposureTime (0018,1150) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getExposureTime(OFString &value, const signed long pos = 0) const; + + /** get ExposureTime (0018,1150) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getExposureTime(Sint32 &value, const unsigned long pos = 0) const; + + /** get ExposureTimeInms (0018,9328) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getExposureTimeInms(Float64 &value, const unsigned long pos = 0) const; + /** get FractionNumber (3002,0029) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1039,6 +1091,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getLargestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1094,6 +1153,55 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + + /** get MetersetExposure (3002,0032) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMetersetExposure(OFString &value, const signed long pos = 0) const; + + /** get MetersetExposure (3002,0032) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMetersetExposure(Float64 &value, const unsigned long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1164,6 +1272,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1171,6 +1286,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1178,6 +1300,20 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1192,6 +1328,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1262,6 +1405,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientSupportAngle (300a,0122) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1423,6 +1573,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getPreferredPlaybackSequencing(Uint16 &value, const unsigned long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get PresentationLUTShape (2050,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1848,6 +2005,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getSmallestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1946,6 +2110,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition getStopTrim(Sint32 &value, const unsigned long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StudyDate (0008,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -2243,6 +2428,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContrastBolusAdministrationRouteSequence (0018,0014) * @return reference to sequence element */ @@ -2387,6 +2584,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTFrameExtractionSequence &getFrameExtractionSequence() const { return FrameExtractionSequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -2471,6 +2680,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + /** get ModalityLUTSequence (0028,3000) * @return reference to sequence element */ @@ -2495,6 +2716,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTMultiplexedAudioChannelsDescriptionCodeSequence &getMultiplexedAudioChannelsDescriptionCodeSequence() const { return MultiplexedAudioChannelsDescriptionCodeSequence; } + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -2795,6 +3028,54 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTSourceImageSequence &getSourceImageSequence() const { return SourceImageSequence; } + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200) * @return reference to sequence element */ @@ -2807,6 +3088,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const { return StudiesContainingOtherReferencedInstancesSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + /** get VOILUTSequence (0028,3010) * @return reference to sequence element */ @@ -2884,6 +3177,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set ApprovalStatus (300e,0002) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -3045,6 +3345,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setClinicalTrialTimePointID(const OFString &value, const OFBool check = OFTrue); + /** set ColorSpace (0028,2002) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue); + /** set Columns (0028,0011) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -3213,6 +3520,20 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue); + /** set ExposureTime (0018,1150) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (IS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setExposureTime(const OFString &value, const OFBool check = OFTrue); + + /** set ExposureTimeInms (0018,9328) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setExposureTimeInms(const Float64 value, const unsigned long pos = 0); + /** set FractionNumber (3002,0029) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (IS) and VM (1) if enabled @@ -3423,6 +3744,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setLargestImagePixelValue(const Uint16 value, const unsigned long pos = 0); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -3465,6 +3793,34 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + + /** set MetersetExposure (3002,0032) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMetersetExposure(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -3528,6 +3884,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -3535,6 +3898,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -3542,6 +3912,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -3556,6 +3933,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -3619,6 +4003,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientSupportAngle (300a,0122) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -3759,6 +4150,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setPreferredPlaybackSequencing(const Uint16 value, const unsigned long pos = 0); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set PresentationLUTShape (2050,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -4095,6 +4493,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setSmallestImagePixelValue(const Uint16 value, const unsigned long pos = 0); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -4158,6 +4563,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD */ virtual OFCondition setStopTrim(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StudyDate (0008,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -4330,6 +4756,12 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -4360,6 +4792,16 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -4372,6 +4814,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -4447,8 +4893,26 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -4493,6 +4957,8 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -4550,6 +5016,8 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -4581,16 +5049,6 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmTime AcquisitionTime; /// AcquisitionDateTime (0008,002a) vr=DT, vm=1, type=3 DcmDateTime AcquisitionDateTime; - /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 - DRTReferencedImageSequence ReferencedImageSequence; - /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 - DcmShortText DerivationDescription; - /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 - DRTDerivationCodeSequence DerivationCodeSequence; - /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 - DRTSourceImageSequence SourceImageSequence; - /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 - DRTReferencedInstanceSequence ReferencedInstanceSequence; /// ImagesInAcquisition (0020,1002) vr=IS, vm=1, type=3 DcmIntegerString ImagesInAcquisition; /// ImageComments (0020,4000) vr=LT, vm=1, type=3 @@ -4616,6 +5074,21 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD /// RealWorldValueMappingSequence (0040,9096) vr=SQ, vm=1, type=3 DRTRealWorldValueMappingSequence RealWorldValueMappingSequence; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- ImagePixelModule (M) --- // SamplesPerPixel (0028,0002) vr=US, vm=1, type=1 @@ -4640,8 +5113,6 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD // PixelRepresentation (0028,0103) vr=US, vm=1, type=1 // - also defined in: RTImageModule // DcmUnsignedShort PixelRepresentation; - /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C - DcmPixelData PixelData; /// PlanarConfiguration (0028,0006) vr=US, vm=1, type=1C DcmUnsignedShort PlanarConfiguration; /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C @@ -4664,6 +5135,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmOtherByteOtherWord BluePaletteColorLookupTableData; /// ICCProfile (0028,2000) vr=OB, vm=1, type=3 DcmOtherByteOtherWord ICCProfile; + /// ColorSpace (0028,2002) vr=CS, vm=1, type=3 + DcmCodeString ColorSpace; + /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C + DcmPixelData PixelData; /// PixelDataProviderURL (0028,7fe0) vr=UR, vm=1, type=1C DcmUniversalResourceIdentifierOrLocator PixelDataProviderURL; /// PixelPaddingRangeLimit (0028,0121) vr=US/SS, vm=1, type=1C @@ -4840,6 +5315,12 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmDecimalString IsocenterPosition; /// PatientPosition (0018,5100) vr=CS, vm=1, type=1C DcmCodeString PatientPosition; + /// ExposureTime (0018,1150) vr=IS, vm=1, type=3 + DcmIntegerString ExposureTime; + /// ExposureTimeInms (0018,9328) vr=FD, vm=1, type=3 + DcmFloatingPointDouble ExposureTimeInms; + /// MetersetExposure (3002,0032) vr=DS, vm=1, type=3 + DcmDecimalString MetersetExposure; // --- ModalityLUTModule (U) --- @@ -4898,6 +5379,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drtionpl.h b/dcmrt/include/dcmtk/dcmrt/drtionpl.h index 889397d4..2f0f7a01 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtionpl.h +++ b/dcmrt/include/dcmtk/dcmrt/drtionpl.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonPlanIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,13 +23,16 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdimcs.h" // for DeidentificationMethodCodeSequence +#include "dcmtk/dcmrt/seq/drtdcs.h" // for DerivationCodeSequence #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drtdrs.h" // for DoseReferenceSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence #include "dcmtk/dcmrt/seq/drtfgs.h" // for FractionGroupSequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtibs.h" // for IonBeamSequence #include "dcmtk/dcmrt/seq/drtitts.h" // for IonToleranceTableSequence @@ -38,6 +41,8 @@ #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -51,6 +56,8 @@ #include "dcmtk/dcmrt/seq/drtpcs.h" // for ProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrds.h" // for ReferencedDoseSequence +#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence +#include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence #include "dcmtk/dcmrt/seq/drtrppss.h" // for ReferencedPerformedProcedureStepSequence @@ -62,7 +69,13 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTIonPlanIOD @@ -218,6 +231,14 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether CommonInstanceReferenceModule (U) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -256,6 +277,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get ApprovalStatus (300e,0002) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -403,6 +431,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; + /** get DerivationDescription (0008,2111) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; + /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -417,6 +452,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const; + /** get FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos = 0) const; + /** get FrameOfReferenceUID (0020,0052) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -501,6 +543,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -522,6 +571,41 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -578,6 +662,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -585,6 +676,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -592,6 +690,20 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -606,6 +718,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -662,6 +781,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -746,6 +872,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get PrescriptionDescription (300a,000e) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -956,6 +1089,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -991,6 +1131,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StudyDate (0008,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1116,6 +1277,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1152,6 +1325,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const { return DeidentificationMethodCodeSequence; } + /** get DerivationCodeSequence (0008,9215) + * @return reference to sequence element + */ + DRTDerivationCodeSequence &getDerivationCodeSequence() + { return DerivationCodeSequence; } + + /** get DerivationCodeSequence (0008,9215) + * @return const reference to sequence element + */ + const DRTDerivationCodeSequence &getDerivationCodeSequence() const + { return DerivationCodeSequence; } + /** get DigitalSignaturesSequence (fffa,fffa) * @return reference to sequence element */ @@ -1200,6 +1385,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTFractionGroupSequence &getFractionGroupSequence() const { return FractionGroupSequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -1296,6 +1493,30 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -1452,6 +1673,30 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTReferencedDoseSequence &getReferencedDoseSequence() const { return ReferencedDoseSequence; } + /** get ReferencedImageSequence (0008,1140) + * @return reference to sequence element + */ + DRTReferencedImageSequence &getReferencedImageSequence() + { return ReferencedImageSequence; } + + /** get ReferencedImageSequence (0008,1140) + * @return const reference to sequence element + */ + const DRTReferencedImageSequence &getReferencedImageSequence() const + { return ReferencedImageSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return reference to sequence element + */ + DRTReferencedInstanceSequence &getReferencedInstanceSequence() + { return ReferencedInstanceSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return const reference to sequence element + */ + const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const + { return ReferencedInstanceSequence; } + /** get ReferencedPatientPhotoSequence (0010,1100) * @return reference to sequence element */ @@ -1584,6 +1829,66 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } + /** get SourceImageSequence (0008,2112) + * @return reference to sequence element + */ + DRTSourceImageSequence &getSourceImageSequence() + { return SourceImageSequence; } + + /** get SourceImageSequence (0008,2112) + * @return const reference to sequence element + */ + const DRTSourceImageSequence &getSourceImageSequence() const + { return SourceImageSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200) * @return reference to sequence element */ @@ -1596,6 +1901,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const { return StudiesContainingOtherReferencedInstancesSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -1626,6 +1943,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set ApprovalStatus (300e,0002) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1773,6 +2097,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); + /** set DerivationDescription (0008,2111) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); + /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1787,6 +2118,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue); + /** set FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=16 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos = 0); + /** set FrameOfReferenceUID (0020,0052) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -1864,6 +2202,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1885,6 +2230,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1941,6 +2307,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -1948,6 +2321,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -1955,6 +2335,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1969,6 +2356,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2018,6 +2412,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -2095,6 +2496,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set PrescriptionDescription (300a,000e) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled @@ -2298,6 +2706,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -2326,6 +2741,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD */ virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StudyDate (0008,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2421,6 +2857,12 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -2451,6 +2893,16 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -2463,6 +2915,10 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -2538,8 +2994,26 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -2584,6 +3058,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -2641,6 +3117,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -2679,6 +3157,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DRTReferencedDoseSequence ReferencedDoseSequence; /// ReferencedRTPlanSequence (300c,0002) vr=SQ, vm=1, type=3 DRTReferencedRTPlanSequenceInRTGeneralPlanModule ReferencedRTPlanSequence; + /// FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) vr=FD, vm=16, type=3 + DcmFloatingPointDouble FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix; // --- RTPrescriptionModule (U) --- @@ -2718,6 +3198,21 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C DcmPersonName ReviewerName; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- SOPCommonModule (M) --- /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1 @@ -2740,6 +3235,10 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drtiontr.h b/dcmrt/include/dcmtk/dcmrt/drtiontr.h index 546f92c8..6a8c3369 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtiontr.h +++ b/dcmrt/include/dcmtk/dcmrt/drtiontr.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonBeamsTreatmentRecordIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -24,19 +24,24 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdimcs.h" // for DeidentificationMethodCodeSequence +#include "dcmtk/dcmrt/seq/drtdcs.h" // for DerivationCodeSequence #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence #include "dcmtk/dcmrt/seq/drtfgss.h" // for FractionGroupSummarySequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence #include "dcmtk/dcmrt/seq/drtiais.h" // for IssuerOfAdmissionIDSequence #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence #include "dcmtk/dcmrt/seq/drtmdrs.h" // for MeasuredDoseReferenceSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -49,6 +54,8 @@ #include "dcmtk/dcmrt/seq/drtpdecs.h" // for PrivateDataElementCharacteristicsSequence #include "dcmtk/dcmrt/seq/drtpcs.h" // for ProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence +#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence +#include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence #include "dcmtk/dcmrt/seq/drtrppss.h" // for ReferencedPerformedProcedureStepSequence @@ -60,11 +67,17 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence #include "dcmtk/dcmrt/seq/drttms0.h" // for TreatmentMachineSequence #include "dcmtk/dcmrt/seq/drttsibs.h" // for TreatmentSessionIonBeamSequence #include "dcmtk/dcmrt/seq/drttscds.h" // for TreatmentSummaryCalculatedDoseReferenceSequence #include "dcmtk/dcmrt/seq/drttsmds.h" // for TreatmentSummaryMeasuredDoseReferenceSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTIonBeamsTreatmentRecordIOD @@ -204,6 +217,14 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFBool isRTTreatmentSummaryRecordModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether CommonInstanceReferenceModule (U) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -242,6 +263,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get AuthorizationEquipmentCertificationNumber (0100,0426) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -389,6 +417,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; + /** get DerivationDescription (0008,2111) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; + /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -487,6 +522,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -508,6 +550,41 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -585,6 +662,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -592,6 +676,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -599,6 +690,20 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -613,6 +718,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -669,6 +781,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -739,6 +858,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getPixelPaddingValue(Uint16 &value, const unsigned long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get PrimaryDosimeterUnit (300a,00b3) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -900,6 +1026,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -935,6 +1068,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StudyDate (0008,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1079,6 +1233,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1115,6 +1281,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const { return DeidentificationMethodCodeSequence; } + /** get DerivationCodeSequence (0008,9215) + * @return reference to sequence element + */ + DRTDerivationCodeSequence &getDerivationCodeSequence() + { return DerivationCodeSequence; } + + /** get DerivationCodeSequence (0008,9215) + * @return const reference to sequence element + */ + const DRTDerivationCodeSequence &getDerivationCodeSequence() const + { return DerivationCodeSequence; } + /** get DigitalSignaturesSequence (fffa,fffa) * @return reference to sequence element */ @@ -1151,6 +1329,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTFractionGroupSummarySequence &getFractionGroupSummarySequence() const { return FractionGroupSummarySequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -1223,6 +1413,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + /** get MeasuredDoseReferenceSequence (3008,0010) * @return reference to sequence element */ @@ -1235,6 +1437,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTMeasuredDoseReferenceSequence &getMeasuredDoseReferenceSequence() const { return MeasuredDoseReferenceSequence; } + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -1379,6 +1593,30 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTReasonForPerformedProcedureCodeSequence &getReasonForPerformedProcedureCodeSequence() const { return ReasonForPerformedProcedureCodeSequence; } + /** get ReferencedImageSequence (0008,1140) + * @return reference to sequence element + */ + DRTReferencedImageSequence &getReferencedImageSequence() + { return ReferencedImageSequence; } + + /** get ReferencedImageSequence (0008,1140) + * @return const reference to sequence element + */ + const DRTReferencedImageSequence &getReferencedImageSequence() const + { return ReferencedImageSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return reference to sequence element + */ + DRTReferencedInstanceSequence &getReferencedInstanceSequence() + { return ReferencedInstanceSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return const reference to sequence element + */ + const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const + { return ReferencedInstanceSequence; } + /** get ReferencedPatientPhotoSequence (0010,1100) * @return reference to sequence element */ @@ -1511,6 +1749,66 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } + /** get SourceImageSequence (0008,2112) + * @return reference to sequence element + */ + DRTSourceImageSequence &getSourceImageSequence() + { return SourceImageSequence; } + + /** get SourceImageSequence (0008,2112) + * @return const reference to sequence element + */ + const DRTSourceImageSequence &getSourceImageSequence() const + { return SourceImageSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200) * @return reference to sequence element */ @@ -1571,6 +1869,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD const DRTTreatmentSummaryMeasuredDoseReferenceSequence &getTreatmentSummaryMeasuredDoseReferenceSequence() const { return TreatmentSummaryMeasuredDoseReferenceSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -1601,6 +1911,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set AuthorizationEquipmentCertificationNumber (0100,0426) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1748,6 +2065,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); + /** set DerivationDescription (0008,2111) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); + /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1839,6 +2163,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1860,6 +2191,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1930,6 +2282,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -1937,6 +2296,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -1944,6 +2310,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1958,6 +2331,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2007,6 +2387,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -2070,6 +2457,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setPixelPaddingValue(const Uint16 value, const unsigned long pos = 0); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set PrimaryDosimeterUnit (300a,00b3) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -2217,6 +2611,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -2245,6 +2646,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD */ virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StudyDate (0008,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2347,6 +2769,12 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -2377,6 +2805,16 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -2389,6 +2827,10 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -2473,8 +2915,26 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -2510,6 +2970,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -2560,6 +3022,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -2631,6 +3095,21 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD /// TreatmentSummaryCalculatedDoseReferenceSequence (3008,0050) vr=SQ, vm=1, type=3 DRTTreatmentSummaryCalculatedDoseReferenceSequence TreatmentSummaryCalculatedDoseReferenceSequence; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- SOPCommonModule (M) --- /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1 @@ -2653,6 +3132,10 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drtplan.h b/dcmrt/include/dcmtk/dcmrt/drtplan.h index cc7ed760..78e907b7 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtplan.h +++ b/dcmrt/include/dcmtk/dcmrt/drtplan.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPlanIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -25,19 +25,24 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdimcs.h" // for DeidentificationMethodCodeSequence +#include "dcmtk/dcmrt/seq/drtdcs.h" // for DerivationCodeSequence #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drtdrs.h" // for DoseReferenceSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence #include "dcmtk/dcmrt/seq/drtfgs.h" // for FractionGroupSequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence #include "dcmtk/dcmrt/seq/drtiais.h" // for IssuerOfAdmissionIDSequence #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -51,6 +56,8 @@ #include "dcmtk/dcmrt/seq/drtpcs.h" // for ProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrds.h" // for ReferencedDoseSequence +#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence +#include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence #include "dcmtk/dcmrt/seq/drtrppss.h" // for ReferencedPerformedProcedureStepSequence @@ -62,10 +69,16 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtss.h" // for SourceSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence #include "dcmtk/dcmrt/seq/drttts.h" // for ToleranceTableSequence #include "dcmtk/dcmrt/seq/drttms9.h" // for TreatmentMachineSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTPlanIOD @@ -237,6 +250,14 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether CommonInstanceReferenceModule (U) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -275,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get ApprovalStatus (300e,0002) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -436,6 +464,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; + /** get DerivationDescription (0008,2111) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; + /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -450,6 +485,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const; + /** get FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos = 0) const; + /** get FrameOfReferenceUID (0020,0052) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -534,6 +576,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -555,6 +604,41 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -611,6 +695,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -618,6 +709,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -625,6 +723,20 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -639,6 +751,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -695,6 +814,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -779,6 +905,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get PrescriptionDescription (300a,000e) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -989,6 +1122,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1024,6 +1164,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StudyDate (0008,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1173,6 +1334,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1209,6 +1382,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const { return DeidentificationMethodCodeSequence; } + /** get DerivationCodeSequence (0008,9215) + * @return reference to sequence element + */ + DRTDerivationCodeSequence &getDerivationCodeSequence() + { return DerivationCodeSequence; } + + /** get DerivationCodeSequence (0008,9215) + * @return const reference to sequence element + */ + const DRTDerivationCodeSequence &getDerivationCodeSequence() const + { return DerivationCodeSequence; } + /** get DigitalSignaturesSequence (fffa,fffa) * @return reference to sequence element */ @@ -1257,6 +1442,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTFractionGroupSequence &getFractionGroupSequence() const { return FractionGroupSequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -1329,6 +1526,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -1485,6 +1706,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTReferencedDoseSequence &getReferencedDoseSequence() const { return ReferencedDoseSequence; } + /** get ReferencedImageSequence (0008,1140) + * @return reference to sequence element + */ + DRTReferencedImageSequence &getReferencedImageSequence() + { return ReferencedImageSequence; } + + /** get ReferencedImageSequence (0008,1140) + * @return const reference to sequence element + */ + const DRTReferencedImageSequence &getReferencedImageSequence() const + { return ReferencedImageSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return reference to sequence element + */ + DRTReferencedInstanceSequence &getReferencedInstanceSequence() + { return ReferencedInstanceSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return const reference to sequence element + */ + const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const + { return ReferencedInstanceSequence; } + /** get ReferencedPatientPhotoSequence (0010,1100) * @return reference to sequence element */ @@ -1617,6 +1862,42 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } + /** get SourceImageSequence (0008,2112) + * @return reference to sequence element + */ + DRTSourceImageSequence &getSourceImageSequence() + { return SourceImageSequence; } + + /** get SourceImageSequence (0008,2112) + * @return const reference to sequence element + */ + const DRTSourceImageSequence &getSourceImageSequence() const + { return SourceImageSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + /** get SourceSequence (300a,0210) * @return reference to sequence element */ @@ -1629,6 +1910,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTSourceSequence &getSourceSequence() const { return SourceSequence; } + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200) * @return reference to sequence element */ @@ -1665,6 +1970,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule &getTreatmentMachineSequence() const { return TreatmentMachineSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -1695,6 +2012,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set ApprovalStatus (300e,0002) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1856,6 +2180,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); + /** set DerivationDescription (0008,2111) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); + /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1870,6 +2201,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue); + /** set FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=16 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos = 0); + /** set FrameOfReferenceUID (0020,0052) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -1947,6 +2285,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1968,6 +2313,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -2024,6 +2390,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2031,6 +2404,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -2038,6 +2418,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2052,6 +2439,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -2101,6 +2495,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -2178,6 +2579,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set PrescriptionDescription (300a,000e) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled @@ -2381,6 +2789,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -2409,6 +2824,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD */ virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StudyDate (0008,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2504,6 +2940,12 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -2534,6 +2976,16 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -2546,6 +2998,10 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -2621,8 +3077,26 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -2667,6 +3141,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -2724,6 +3200,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -2762,6 +3240,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DRTReferencedDoseSequence ReferencedDoseSequence; /// ReferencedRTPlanSequence (300c,0002) vr=SQ, vm=1, type=3 DRTReferencedRTPlanSequenceInRTGeneralPlanModule ReferencedRTPlanSequence; + /// FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) vr=FD, vm=16, type=3 + DcmFloatingPointDouble FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix; // --- RTPrescriptionModule (U) --- @@ -2814,6 +3294,21 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C DcmPersonName ReviewerName; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- SOPCommonModule (M) --- /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1 @@ -2836,6 +3331,10 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drtstrct.h b/dcmrt/include/dcmtk/dcmrt/drtstrct.h index 21948f8d..bd17bdd9 100644 --- a/dcmrt/include/dcmtk/dcmrt/drtstrct.h +++ b/dcmrt/include/dcmtk/dcmrt/drtstrct.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTStructureSetIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,17 +23,22 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdimcs.h" // for DeidentificationMethodCodeSequence +#include "dcmtk/dcmrt/seq/drtdcs.h" // for DerivationCodeSequence #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence #include "dcmtk/dcmrt/seq/drtiais.h" // for IssuerOfAdmissionIDSequence #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -49,6 +54,8 @@ #include "dcmtk/dcmrt/seq/drtrros.h" // for RTROIObservationsSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrfors.h" // for ReferencedFrameOfReferenceSequence +#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence +#include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence #include "dcmtk/dcmrt/seq/drtrppss.h" // for ReferencedPerformedProcedureStepSequence @@ -58,8 +65,14 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtssrs.h" // for StructureSetROISequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTStructureSetIOD @@ -183,6 +196,14 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether CommonInstanceReferenceModule (U) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -221,6 +242,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get ApprovalStatus (300e,0002) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -368,6 +396,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; + /** get DerivationDescription (0008,2111) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; + /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -466,6 +501,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -487,6 +529,41 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -543,6 +620,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -550,6 +634,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -557,6 +648,20 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -571,6 +676,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -627,6 +739,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -704,6 +823,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get QualityControlSubject (0010,0200) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -865,6 +991,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -900,6 +1033,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StructureSetDate (3006,0008) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -1046,6 +1200,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1082,6 +1248,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const { return DeidentificationMethodCodeSequence; } + /** get DerivationCodeSequence (0008,9215) + * @return reference to sequence element + */ + DRTDerivationCodeSequence &getDerivationCodeSequence() + { return DerivationCodeSequence; } + + /** get DerivationCodeSequence (0008,9215) + * @return const reference to sequence element + */ + const DRTDerivationCodeSequence &getDerivationCodeSequence() const + { return DerivationCodeSequence; } + /** get DigitalSignaturesSequence (fffa,fffa) * @return reference to sequence element */ @@ -1106,6 +1284,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTEncryptedAttributesSequence &getEncryptedAttributesSequence() const { return EncryptedAttributesSequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -1178,6 +1368,30 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -1358,6 +1572,30 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTReferencedFrameOfReferenceSequence &getReferencedFrameOfReferenceSequence() const { return ReferencedFrameOfReferenceSequence; } + /** get ReferencedImageSequence (0008,1140) + * @return reference to sequence element + */ + DRTReferencedImageSequence &getReferencedImageSequence() + { return ReferencedImageSequence; } + + /** get ReferencedImageSequence (0008,1140) + * @return const reference to sequence element + */ + const DRTReferencedImageSequence &getReferencedImageSequence() const + { return ReferencedImageSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return reference to sequence element + */ + DRTReferencedInstanceSequence &getReferencedInstanceSequence() + { return ReferencedInstanceSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return const reference to sequence element + */ + const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const + { return ReferencedInstanceSequence; } + /** get ReferencedPatientPhotoSequence (0010,1100) * @return reference to sequence element */ @@ -1466,6 +1704,66 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } + /** get SourceImageSequence (0008,2112) + * @return reference to sequence element + */ + DRTSourceImageSequence &getSourceImageSequence() + { return SourceImageSequence; } + + /** get SourceImageSequence (0008,2112) + * @return const reference to sequence element + */ + const DRTSourceImageSequence &getSourceImageSequence() const + { return SourceImageSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StructureSetROISequence (3006,0020) * @return reference to sequence element */ @@ -1490,6 +1788,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const { return StudiesContainingOtherReferencedInstancesSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -1520,6 +1830,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set ApprovalStatus (300e,0002) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1667,6 +1984,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); + /** set DerivationDescription (0008,2111) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); + /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1758,6 +2082,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1779,6 +2110,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1835,6 +2187,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -1842,6 +2201,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -1849,6 +2215,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1863,6 +2236,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1912,6 +2292,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -1982,6 +2369,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set QualityControlSubject (0010,0200) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -2136,6 +2530,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -2164,6 +2565,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD */ virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StructureSetDate (3006,0008) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2280,6 +2702,12 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -2310,6 +2738,16 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -2322,6 +2760,10 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -2397,8 +2839,26 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -2443,6 +2903,8 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -2493,6 +2955,8 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -2552,6 +3016,21 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C DcmPersonName ReviewerName; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- SOPCommonModule (M) --- /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1 @@ -2574,6 +3053,10 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/drttreat.h b/dcmrt/include/dcmtk/dcmrt/drttreat.h index 5822e242..ba64bade 100644 --- a/dcmrt/include/dcmtk/dcmrt/drttreat.h +++ b/dcmrt/include/dcmtk/dcmrt/drttreat.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentSummaryRecordIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,18 +23,23 @@ #include "dcmtk/dcmrt/seq/drtcsis.h" // for CodingSchemeIdentificationSequence #include "dcmtk/dcmrt/seq/drtcctus.h" // for ConsentForClinicalTrialUseSequence #include "dcmtk/dcmrt/seq/drtcpis.h" // for ConsultingPhysicianIdentificationSequence +#include "dcmtk/dcmrt/seq/drtcgis.h" // for ContextGroupIdentificationSequence #include "dcmtk/dcmrt/seq/drtces.h" // for ContributingEquipmentSequence #include "dcmtk/dcmrt/seq/drtcsas.h" // for ConversionSourceAttributesSequence #include "dcmtk/dcmrt/seq/drtdimcs.h" // for DeidentificationMethodCodeSequence +#include "dcmtk/dcmrt/seq/drtdcs.h" // for DerivationCodeSequence #include "dcmtk/dcmrt/seq/drtdss.h" // for DigitalSignaturesSequence #include "dcmtk/dcmrt/seq/drteas.h" // for EncryptedAttributesSequence #include "dcmtk/dcmrt/seq/drtfgss.h" // for FractionGroupSummarySequence +#include "dcmtk/dcmrt/seq/drtgpis.h" // for GroupOfPatientsIdentificationSequence #include "dcmtk/dcmrt/seq/drthsdrs.h" // for HL7StructuredDocumentReferenceSequence #include "dcmtk/dcmrt/seq/drtians.h" // for IssuerOfAccessionNumberSequence #include "dcmtk/dcmrt/seq/drtiais.h" // for IssuerOfAdmissionIDSequence #include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence #include "dcmtk/dcmrt/seq/drtiseis.h" // for IssuerOfServiceEpisodeIDSequence #include "dcmtk/dcmrt/seq/drtmps.h" // for MACParametersSequence +#include "dcmtk/dcmrt/seq/drtmris.h" // for MappingResourceIdentificationSequence +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence #include "dcmtk/dcmrt/seq/drtoas.h" // for OriginalAttributesSequence #include "dcmtk/dcmrt/seq/drtopis.h" // for OtherPatientIDsSequence #include "dcmtk/dcmrt/seq/drtpbcs.h" // for PatientBreedCodeSequence @@ -46,6 +51,8 @@ #include "dcmtk/dcmrt/seq/drtpdecs.h" // for PrivateDataElementCharacteristicsSequence #include "dcmtk/dcmrt/seq/drtpcs.h" // for ProcedureCodeSequence #include "dcmtk/dcmrt/seq/drtrppcs.h" // for ReasonForPerformedProcedureCodeSequence +#include "dcmtk/dcmrt/seq/drtrims.h" // for ReferencedImageSequence +#include "dcmtk/dcmrt/seq/drtris.h" // for ReferencedInstanceSequence #include "dcmtk/dcmrt/seq/drtrpphs.h" // for ReferencedPatientPhotoSequence #include "dcmtk/dcmrt/seq/drtrps.h" // for ReferencedPatientSequence #include "dcmtk/dcmrt/seq/drtrppss.h" // for ReferencedPerformedProcedureStepSequence @@ -57,9 +64,15 @@ #include "dcmtk/dcmrt/seq/drtras.h" // for RequestAttributesSequence #include "dcmtk/dcmrt/seq/drtrscs.h" // for RequestingServiceCodeSequence #include "dcmtk/dcmrt/seq/drtsdcs.h" // for SeriesDescriptionCodeSequence +#include "dcmtk/dcmrt/seq/drtsis.h" // for SourceImageSequence +#include "dcmtk/dcmrt/seq/drtsins.h" // for SourceInstanceSequence +#include "dcmtk/dcmrt/seq/drtspgis.h" // for SourcePatientGroupIdentificationSequence +#include "dcmtk/dcmrt/seq/drtscs.h" // for StrainCodeSequence +#include "dcmtk/dcmrt/seq/drtsss.h" // for StrainStockSequence #include "dcmtk/dcmrt/seq/drtscris.h" // for StudiesContainingOtherReferencedInstancesSequence #include "dcmtk/dcmrt/seq/drttscds.h" // for TreatmentSummaryCalculatedDoseReferenceSequence #include "dcmtk/dcmrt/seq/drttsmds.h" // for TreatmentSummaryMeasuredDoseReferenceSequence +#include "dcmtk/dcmrt/seq/drtudis.h" // for UDISequence /** Interface class for RTTreatmentSummaryRecordIOD @@ -167,6 +180,14 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFBool isClinicalTrialSeriesModulePresent(const OFBool complete = OFFalse); + /** check whether GeneralReferenceModule (U) is present. + * By default, a module is reported as being present if at least one attribute + * from this module has a non-empty value. + * @param complete check for all mandatory attributes of this module if enabled + * @return OFTrue if module is present, OFFalse otherwise + */ + virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse); + /** check whether CommonInstanceReferenceModule (U) is present. * By default, a module is reported as being present if at least one attribute * from this module has a non-empty value. @@ -205,6 +226,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const; + /** get Allergies (0010,2110) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const; + /** get AuthorizationEquipmentCertificationNumber (0100,0426) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -352,6 +380,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const; + /** get DerivationDescription (0008,2111) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const; + /** get DeviceSerialNumber (0018,1000) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -450,6 +485,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + /** get LastMenstrualDate (0010,21d0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const; + /** get LongitudinalTemporalInformationModified (0028,0303) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -471,6 +513,41 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredAPDimension (0010,1023) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const; + + /** get MeasuredLateralDimension (0010,1024) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const; + + /** get MedicalAlerts (0010,2000) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const; + /** get Modality (0008,0060) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -534,6 +611,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const; + /** get PatientAlternativeCalendar (0010,0035) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDate (0010,0030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -541,6 +625,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const; + /** get PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientBirthTime (0010,0032) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -548,6 +639,20 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const; + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const; + + /** get PatientBodyMassIndex (0010,1022) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const; + /** get PatientBreedDescription (0010,2292) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -562,6 +667,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const; + /** get PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const; + /** get PatientID (0010,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -618,6 +730,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const; + /** get PatientState (0038,0500) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const; + /** get PatientWeight (0010,1030) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -688,6 +807,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getPixelPaddingValue(Uint16 &value, const unsigned long pos = 0) const; + /** get PregnancyStatus (0010,21c0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const; + /** get QualityControlSubject (0010,0200) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -828,6 +954,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const; + /** get SmokingStatus (0010,21a0) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const; + /** get SoftwareVersions (0018,1020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -863,6 +996,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const; + /** get StrainAdditionalInformation (0010,0218) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const; + + /** get StrainDescription (0010,0212) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const; + + /** get StrainNomenclature (0010,0213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const; + /** get StudyDate (0008,0020) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -995,6 +1149,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const { return ConsultingPhysicianIdentificationSequence; } + /** get ContextGroupIdentificationSequence (0008,0123) + * @return reference to sequence element + */ + DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() + { return ContextGroupIdentificationSequence; } + + /** get ContextGroupIdentificationSequence (0008,0123) + * @return const reference to sequence element + */ + const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const + { return ContextGroupIdentificationSequence; } + /** get ContributingEquipmentSequence (0018,a001) * @return reference to sequence element */ @@ -1031,6 +1197,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const { return DeidentificationMethodCodeSequence; } + /** get DerivationCodeSequence (0008,9215) + * @return reference to sequence element + */ + DRTDerivationCodeSequence &getDerivationCodeSequence() + { return DerivationCodeSequence; } + + /** get DerivationCodeSequence (0008,9215) + * @return const reference to sequence element + */ + const DRTDerivationCodeSequence &getDerivationCodeSequence() const + { return DerivationCodeSequence; } + /** get DigitalSignaturesSequence (fffa,fffa) * @return reference to sequence element */ @@ -1067,6 +1245,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTFractionGroupSummarySequence &getFractionGroupSummarySequence() const { return FractionGroupSummarySequence; } + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return reference to sequence element + */ + DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() + { return GroupOfPatientsIdentificationSequence; } + + /** get GroupOfPatientsIdentificationSequence (0010,0027) + * @return const reference to sequence element + */ + const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const + { return GroupOfPatientsIdentificationSequence; } + /** get HL7StructuredDocumentReferenceSequence (0040,a390) * @return reference to sequence element */ @@ -1139,6 +1329,30 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTMACParametersSequence &getMACParametersSequence() const { return MACParametersSequence; } + /** get MappingResourceIdentificationSequence (0008,0124) + * @return reference to sequence element + */ + DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() + { return MappingResourceIdentificationSequence; } + + /** get MappingResourceIdentificationSequence (0008,0124) + * @return const reference to sequence element + */ + const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const + { return MappingResourceIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + /** get OriginalAttributesSequence (0400,0561) * @return reference to sequence element */ @@ -1271,6 +1485,30 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTReasonForPerformedProcedureCodeSequence &getReasonForPerformedProcedureCodeSequence() const { return ReasonForPerformedProcedureCodeSequence; } + /** get ReferencedImageSequence (0008,1140) + * @return reference to sequence element + */ + DRTReferencedImageSequence &getReferencedImageSequence() + { return ReferencedImageSequence; } + + /** get ReferencedImageSequence (0008,1140) + * @return const reference to sequence element + */ + const DRTReferencedImageSequence &getReferencedImageSequence() const + { return ReferencedImageSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return reference to sequence element + */ + DRTReferencedInstanceSequence &getReferencedInstanceSequence() + { return ReferencedInstanceSequence; } + + /** get ReferencedInstanceSequence (0008,114a) + * @return const reference to sequence element + */ + const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const + { return ReferencedInstanceSequence; } + /** get ReferencedPatientPhotoSequence (0010,1100) * @return reference to sequence element */ @@ -1403,6 +1641,66 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const { return SeriesDescriptionCodeSequence; } + /** get SourceImageSequence (0008,2112) + * @return reference to sequence element + */ + DRTSourceImageSequence &getSourceImageSequence() + { return SourceImageSequence; } + + /** get SourceImageSequence (0008,2112) + * @return const reference to sequence element + */ + const DRTSourceImageSequence &getSourceImageSequence() const + { return SourceImageSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return reference to sequence element + */ + DRTSourceInstanceSequence &getSourceInstanceSequence() + { return SourceInstanceSequence; } + + /** get SourceInstanceSequence (0042,0013) + * @return const reference to sequence element + */ + const DRTSourceInstanceSequence &getSourceInstanceSequence() const + { return SourceInstanceSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return reference to sequence element + */ + DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() + { return SourcePatientGroupIdentificationSequence; } + + /** get SourcePatientGroupIdentificationSequence (0010,0026) + * @return const reference to sequence element + */ + const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const + { return SourcePatientGroupIdentificationSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return reference to sequence element + */ + DRTStrainCodeSequence &getStrainCodeSequence() + { return StrainCodeSequence; } + + /** get StrainCodeSequence (0010,0219) + * @return const reference to sequence element + */ + const DRTStrainCodeSequence &getStrainCodeSequence() const + { return StrainCodeSequence; } + + /** get StrainStockSequence (0010,0216) + * @return reference to sequence element + */ + DRTStrainStockSequence &getStrainStockSequence() + { return StrainStockSequence; } + + /** get StrainStockSequence (0010,0216) + * @return const reference to sequence element + */ + const DRTStrainStockSequence &getStrainStockSequence() const + { return StrainStockSequence; } + /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200) * @return reference to sequence element */ @@ -1439,6 +1737,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD const DRTTreatmentSummaryMeasuredDoseReferenceSequence &getTreatmentSummaryMeasuredDoseReferenceSequence() const { return TreatmentSummaryMeasuredDoseReferenceSequence; } + /** get UDISequence (0018,100a) + * @return reference to sequence element + */ + DRTUDISequence &getUDISequence() + { return UDISequence; } + + /** get UDISequence (0018,100a) + * @return const reference to sequence element + */ + const DRTUDISequence &getUDISequence() const + { return UDISequence; } + // --- set DICOM attribute values --- /** set AccessionNumber (0008,0050) @@ -1469,6 +1779,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue); + /** set Allergies (0010,2110) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue); + /** set AuthorizationEquipmentCertificationNumber (0100,0426) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1616,6 +1933,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue); + /** set DerivationDescription (0008,2111) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (ST) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue); + /** set DeviceSerialNumber (0018,1000) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1707,6 +2031,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + /** set LastMenstrualDate (0010,21d0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue); + /** set LongitudinalTemporalInformationModified (0028,0303) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1728,6 +2059,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set MeasuredAPDimension (0010,1023) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MeasuredLateralDimension (0010,1024) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue); + + /** set MedicalAlerts (0010,2000) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue); + /** set Modality (0008,0060) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -1791,6 +2143,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue); + /** set PatientAlternativeCalendar (0010,0035) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDate (0010,0030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -1798,6 +2157,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthDateInAlternativeCalendar (0010,0033) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientBirthTime (0010,0032) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (TM) and VM (1) if enabled @@ -1805,6 +2171,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue); + /** set PatientBodyMassIndex (0010,1022) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue); + /** set PatientBreedDescription (0010,2292) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1819,6 +2192,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue); + /** set PatientDeathDateInAlternativeCalendar (0010,0034) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue); + /** set PatientID (0010,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -1868,6 +2248,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue); + /** set PatientState (0038,0500) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue); + /** set PatientWeight (0010,1030) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -1931,6 +2318,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setPixelPaddingValue(const Uint16 value, const unsigned long pos = 0); + /** set PregnancyStatus (0010,21c0) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0); + /** set QualityControlSubject (0010,0200) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled @@ -2064,6 +2458,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue); + /** set SmokingStatus (0010,21a0) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue); + /** set SoftwareVersions (0018,1020) * @param value value to be set (possibly multi-valued) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1-n) if enabled @@ -2092,6 +2493,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD */ virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue); + /** set StrainAdditionalInformation (0010,0218) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue); + + /** set StrainDescription (0010,0212) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue); + + /** set StrainNomenclature (0010,0213) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue); + /** set StudyDate (0008,0020) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DA) and VM (1) if enabled @@ -2194,6 +2616,12 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2 DcmDate PatientBirthDate; + /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3 + DcmLongString PatientBirthDateInAlternativeCalendar; + /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3 + DcmLongString PatientDeathDateInAlternativeCalendar; + /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C + DcmCodeString PatientAlternativeCalendar; /// PatientSex (0010,0040) vr=CS, vm=1, type=2 DcmCodeString PatientSex; /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3 @@ -2224,6 +2652,16 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DRTPatientBreedCodeSequence PatientBreedCodeSequence; /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C DRTBreedRegistrationSequence BreedRegistrationSequence; + /// StrainDescription (0010,0212) vr=UC, vm=1, type=3 + DcmUnlimitedCharacters StrainDescription; + /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3 + DcmLongString StrainNomenclature; + /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3 + DRTStrainCodeSequence StrainCodeSequence; + /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3 + DcmUnlimitedText StrainAdditionalInformation; + /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3 + DRTStrainStockSequence StrainStockSequence; /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C DcmPersonName ResponsiblePerson; /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C @@ -2236,6 +2674,10 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DcmLongString DeidentificationMethod; /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence; + /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3 + DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence; + /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3 + DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence; // --- ClinicalTrialSubjectModule (U) --- @@ -2311,8 +2753,26 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DcmDecimalString PatientSize; /// PatientWeight (0010,1030) vr=DS, vm=1, type=3 DcmDecimalString PatientWeight; + /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3 + DcmDecimalString PatientBodyMassIndex; + /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredAPDimension; + /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3 + DcmDecimalString MeasuredLateralDimension; /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3 DRTPatientSizeCodeSequence PatientSizeCodeSequence; + /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3 + DcmLongString MedicalAlerts; + /// Allergies (0010,2110) vr=LO, vm=1-n, type=3 + DcmLongString Allergies; + /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3 + DcmCodeString SmokingStatus; + /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3 + DcmUnsignedShort PregnancyStatus; + /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3 + DcmDate LastMenstrualDate; + /// PatientState (0038,0500) vr=LO, vm=1, type=3 + DcmLongString PatientState; /// Occupation (0010,2180) vr=SH, vm=1, type=3 DcmShortString Occupation; /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3 @@ -2357,6 +2817,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3 DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence; /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3 @@ -2407,6 +2869,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DcmLongString SoftwareVersions; /// GantryID (0018,1008) vr=LO, vm=1, type=3 DcmLongString GantryID; + /// UDISequence (0018,100a) vr=SQ, vm=1, type=3 + DRTUDISequence UDISequence; /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3 DcmDecimalString SpatialResolution; /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3 @@ -2447,6 +2911,21 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD /// TreatmentSummaryCalculatedDoseReferenceSequence (3008,0050) vr=SQ, vm=1, type=3 DRTTreatmentSummaryCalculatedDoseReferenceSequence TreatmentSummaryCalculatedDoseReferenceSequence; + // --- GeneralReferenceModule (U) --- + + /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3 + DRTReferencedImageSequence ReferencedImageSequence; + /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3 + DRTReferencedInstanceSequence ReferencedInstanceSequence; + /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3 + DcmShortText DerivationDescription; + /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3 + DRTDerivationCodeSequence DerivationCodeSequence; + /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3 + DRTSourceImageSequence SourceImageSequence; + /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3 + DRTSourceInstanceSequence SourceInstanceSequence; + // --- SOPCommonModule (M) --- /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1 @@ -2469,6 +2948,10 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD DcmUniqueIdentifier OriginalSpecializedSOPClassUID; /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3 DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence; + /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3 + DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence; + /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3 + DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence; /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3 DcmShortString TimezoneOffsetFromUTC; /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h index 271dfb24..de101beb 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTAssigningAgencyOrDepartmentCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h index 12211700..67afbb39 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTAdmittingDiagnosesCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtads.h b/dcmrt/include/dcmtk/dcmrt/seq/drtads.h index bd799e36..1b818280 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtads.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtads.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTAdditionalDrugSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h index af706b18..f5877ce2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTAssigningFacilitySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtags.h b/dcmrt/include/dcmtk/dcmrt/seq/drtags.h index 9f9fa998..ec5614f7 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtags.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtags.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicatorGeometrySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h index 4d404cf1..69c52621 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTAssigningJurisdictionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h deleted file mode 100644 index 6b218681..00000000 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h +++ /dev/null @@ -1,542 +0,0 @@ -/* - * - * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany - * All rights reserved. See COPYRIGHT file for details. - * - * Header file for class DRTAdditionalRTROIIdentificationCodeSequence - * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 - * - */ - - -#ifndef DRTARICS_H -#define DRTARICS_H - -#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first - -#include "dcmtk/ofstd/oflist.h" // for standard list class -#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class -#include "dcmtk/dcmrt/seq/drtecs.h" // for EquivalentCodeSequence -#include "dcmtk/dcmrt/seq/drtporcs.h" // for PurposeOfReferenceCodeSequence - - -/** Interface class for AdditionalRTROIIdentificationCodeSequence (3006,00b9) - */ -class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence - : protected DRTTypes -{ - - public: - - /** Item class - */ - class DCMTK_DCMRT_EXPORT Item - : protected DRTTypes - { - - public: - - // --- constructors, destructor and operators --- - - /** (default) constructor - * @param emptyDefaultItem flag used to mark the empty default item - */ - Item(const OFBool emptyDefaultItem = OFFalse); - - /** copy constructor - * @param copy item object to be copied - */ - Item(const Item ©); - - /** destructor - */ - virtual ~Item(); - - /** assigment operator - * @param copy item object to be copied - */ - Item &operator=(const Item ©); - - // --- general methods --- - - /** clear all internal member variables - */ - void clear(); - - /** check if item is empty - * @return OFTrue if item is empty, OFFalse otherwise - */ - OFBool isEmpty(); - - /** check if item is valid, i.e.\ not the empty default item - * @return OFTrue if item is valid, OFFalse otherwise - */ - OFBool isValid() const; - - // --- input/output methods --- - - /** read elements from sequence item - * @param item reference to DICOM sequence item from which the elements should be read - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition read(DcmItem &item); - - /** write elements to sequence item - * @param item reference to DICOM sequence item to which the elements should be written - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition write(DcmItem &item); - - // --- get DICOM attribute values --- - - /** get CodeMeaning (0008,0104) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getCodeMeaning(OFString &value, const signed long pos = 0) const; - - /** get CodeValue (0008,0100) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getCodeValue(OFString &value, const signed long pos = 0) const; - - /** get CodingSchemeDesignator (0008,0102) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getCodingSchemeDesignator(OFString &value, const signed long pos = 0) const; - - /** get CodingSchemeVersion (0008,0103) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const; - - /** get ContextGroupExtensionCreatorUID (0008,010d) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const; - - /** get ContextGroupExtensionFlag (0008,010b) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const; - - /** get ContextGroupLocalVersion (0008,0107) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const; - - /** get ContextGroupVersion (0008,0106) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const; - - /** get ContextIdentifier (0008,010f) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const; - - /** get ContextUID (0008,0117) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getContextUID(OFString &value, const signed long pos = 0) const; - - /** get LongCodeValue (0008,0119) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const; - - /** get MappingResource (0008,0105) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; - - /** get MappingResourceUID (0008,0118) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const; - - /** get URNCodeValue (0008,0120) - * @param value reference to variable in which the value should be stored - * @param pos index of the value to get (0..vm-1), -1 for all components - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getURNCodeValue(OFString &value, const signed long pos = 0) const; - - // --- get DICOM sequence attributes --- - - /** get EquivalentCodeSequence (0008,0121) - * @return reference to sequence element - */ - DRTEquivalentCodeSequence &getEquivalentCodeSequence() - { return EquivalentCodeSequence; } - - /** get EquivalentCodeSequence (0008,0121) - * @return const reference to sequence element - */ - const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const - { return EquivalentCodeSequence; } - - /** get PurposeOfReferenceCodeSequence (0040,a170) - * @return reference to sequence element - */ - DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() - { return PurposeOfReferenceCodeSequence; } - - /** get PurposeOfReferenceCodeSequence (0040,a170) - * @return const reference to sequence element - */ - const DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() const - { return PurposeOfReferenceCodeSequence; } - - // --- set DICOM attribute values --- - - /** set CodeMeaning (0008,0104) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setCodeMeaning(const OFString &value, const OFBool check = OFTrue); - - /** set CodeValue (0008,0100) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setCodeValue(const OFString &value, const OFBool check = OFTrue); - - /** set CodingSchemeDesignator (0008,0102) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setCodingSchemeDesignator(const OFString &value, const OFBool check = OFTrue); - - /** set CodingSchemeVersion (0008,0103) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue); - - /** set ContextGroupExtensionCreatorUID (0008,010d) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue); - - /** set ContextGroupExtensionFlag (0008,010b) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue); - - /** set ContextGroupLocalVersion (0008,0107) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue); - - /** set ContextGroupVersion (0008,0106) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue); - - /** set ContextIdentifier (0008,010f) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue); - - /** set ContextUID (0008,0117) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue); - - /** set LongCodeValue (0008,0119) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue); - - /** set MappingResource (0008,0105) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); - - /** set MappingResourceUID (0008,0118) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue); - - /** set URNCodeValue (0008,0120) - * @param value value to be set (single value only) or "" for no value - * @param check check 'value' for conformance with VR (UR) and VM (1) if enabled - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition setURNCodeValue(const OFString &value, const OFBool check = OFTrue); - - private: - - /// internal flag used to mark the empty default item - /*const*/ OFBool EmptyDefaultItem; - - /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1 - DcmLongString CodeMeaning; - /// CodeValue (0008,0100) vr=SH, vm=1, type=1C - DcmShortString CodeValue; - /// CodingSchemeDesignator (0008,0102) vr=SH, vm=1, type=1C - DcmShortString CodingSchemeDesignator; - /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C - DcmShortString CodingSchemeVersion; - /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C - DcmUniqueIdentifier ContextGroupExtensionCreatorUID; - /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3 - DcmCodeString ContextGroupExtensionFlag; - /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C - DcmDateTime ContextGroupLocalVersion; - /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C - DcmDateTime ContextGroupVersion; - /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3 - DcmCodeString ContextIdentifier; - /// ContextUID (0008,0117) vr=UI, vm=1, type=3 - DcmUniqueIdentifier ContextUID; - /// EquivalentCodeSequence (0008,0121) vr=SQ, vm=1, type=3 - DRTEquivalentCodeSequence EquivalentCodeSequence; - /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C - DcmUnlimitedCharacters LongCodeValue; - /// MappingResource (0008,0105) vr=CS, vm=1, type=1C - DcmCodeString MappingResource; - /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 - DcmUniqueIdentifier MappingResourceUID; - /// PurposeOfReferenceCodeSequence (0040,a170) vr=SQ, vm=1, type=1 - DRTPurposeOfReferenceCodeSequence PurposeOfReferenceCodeSequence; - /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C - DcmUniversalResourceIdentifierOrLocator URNCodeValue; - - }; - - // --- constructors, destructor and operators --- - - /** (default) constructor - * @param emptyDefaultSequence internal flag used to mark the empty default sequence - */ - DRTAdditionalRTROIIdentificationCodeSequence(const OFBool emptyDefaultSequence = OFFalse); - - /** copy constructor - * @param copy sequence object to be copied - */ - DRTAdditionalRTROIIdentificationCodeSequence(const DRTAdditionalRTROIIdentificationCodeSequence ©); - - /** destructor - */ - virtual ~DRTAdditionalRTROIIdentificationCodeSequence(); - - /** assigment operator - * @param copy sequence object to be copied - */ - DRTAdditionalRTROIIdentificationCodeSequence &operator=(const DRTAdditionalRTROIIdentificationCodeSequence ©); - - // --- general methods --- - - /** clear all internal member variables - */ - void clear(); - - /** check if sequence is empty - * @return OFTrue if sequence is empty, OFFalse otherwise - */ - OFBool isEmpty(); - - /** check if sequence is valid, i.e.\ not the empty default sequence - * @return OFTrue if sequence is valid, OFFalse otherwise - */ - OFBool isValid() const; - - /** get number of items in the sequence - * @return number of items - */ - unsigned long getNumberOfItems() const; - - /** goto first item in the sequence - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition gotoFirstItem(); - - /** goto next item in the sequence - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition gotoNextItem(); - - /** goto particular item in the sequence - * @param num number of the item to be selected (0..num-1) - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition gotoItem(const unsigned long num); - - /** get current item in the sequence - * @param item reference to item pointer (result variable) - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getCurrentItem(Item *&item) const; - - /** get current item in the sequence - * @return reference to specified item if successful, empty default item otherwise - */ - Item &getCurrentItem(); - - /** get current item in the sequence - * @return const reference to specified item if successful, empty default item otherwise - */ - const Item &getCurrentItem() const; - - /** get particular item in the sequence - * @param num number of the item to be retrieved (0..num-1) - * @param item reference to item pointer (result variable) - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition getItem(const unsigned long num, Item *&item); - - /** get particular item in the sequence - * @param num number of the item to be retrieved (0..num-1) - * @return reference to specified item if successful, empty default item otherwise - */ - Item &getItem(const unsigned long num); - - /** get particular item in the sequence - * @param num number of the item to be retrieved (0..num-1) - * @return const reference to specified item if successful, empty default item otherwise - */ - const Item &getItem(const unsigned long num) const; - - /** get particular item in the sequence - * @param num number of the item to be retrieved (0..num-1) - * @return reference to specified item if successful, empty default item otherwise - */ - Item &operator[](const unsigned long num); - - /** get particular item in the sequence - * @param num number of the item to be retrieved (0..num-1) - * @return const reference to specified item if successful, empty default item otherwise - */ - const Item &operator[](const unsigned long num) const; - - /** add new item to the end of this sequence - * @param item reference to new item pointer (result variable) - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition addItem(Item *&item); - - /** insert new item into the sequence - * @param pos position where the new item is to be inserted (0..num) - * @param item reference to new item pointer (result variable) - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition insertItem(const unsigned long pos, Item *&item); - - /** remove particular item from the sequence - * @param pos position of the item to be removed (0..num-1) - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition removeItem(const unsigned long pos); - - // --- input/output methods --- - - /** read sequence of items from dataset - * @param dataset reference to DICOM dataset from which the sequence should be read - * @param card cardinality (valid range for number of items) - * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) - * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition read(DcmItem &dataset, - const OFString &card, - const OFString &type, - const char *moduleName = NULL); - - /** write sequence of items to dataset - * @param dataset reference to DICOM dataset to which the sequence should be written - * @param card cardinality (valid range for number of items) - * @param type value type (valid value: "1", "2" or something else which is not checked) - * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition write(DcmItem &dataset, - const OFString &card, - const OFString &type, - const char *moduleName = NULL); - - protected: - - /** goto particular item in the sequence - * @param num number of the item to be selected (0..num-1) - * @param iterator list iterator storing the position of the item - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition gotoItem(const unsigned long num, - OFListIterator(Item *) &iterator); - - /** goto particular item in the sequence - * @param num number of the item to be selected (0..num-1) - * @param iterator list iterator storing the position of the item - * @return status, EC_Normal if successful, an error code otherwise - */ - OFCondition gotoItem(const unsigned long num, - OFListConstIterator(Item *) &iterator) const; - - private: - - /// internal flag used to mark the empty default sequence - /*const*/ OFBool EmptyDefaultSequence; - - /// list of items in this sequence - OFList SequenceOfItems; - /// currently selected item - OFListIterator(Item *) CurrentItem; - /// empty default item - Item EmptyItem; - -}; - - -#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h index c1d420a8..88f4e04a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicatorSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h index a07e40eb..d12b13b7 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicatorSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h index 2ca82efe..0ad16c34 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicatorSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h index 743c9518..7195c3c8 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicatorSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtass.h b/dcmrt/include/dcmtk/dcmrt/seq/drtass.h index d6f99221..42d75e50 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtass.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtass.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTApplicationSetupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h index 6a9203b2..72334b71 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBrachyAccessoryDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h index 62525029..161a5fc4 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContrastBolusAgentSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h index 0d016247..d7d0c7a3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBrachyControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h index a5168096..2a628d18 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBlockSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -229,6 +229,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule */ OFCondition getSourceToBlockTrayDistance(Float64 &value, const unsigned long pos = 0) const; + /** get TrayAccessoryCode (300a,0355) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const; + // --- set DICOM attribute values --- /** set AccessoryCode (300a,00f9) @@ -322,6 +329,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule */ OFCondition setSourceToBlockTrayDistance(const OFString &value, const OFBool check = OFTrue); + /** set TrayAccessoryCode (300a,0355) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue); + private: /// internal flag used to mark the empty default item @@ -353,6 +367,8 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule DcmShortString MaterialID; /// SourceToBlockTrayDistance (300a,00f6) vr=DS, vm=1, type=2 DcmDecimalString SourceToBlockTrayDistance; + /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3 + DcmLongString TrayAccessoryCode; }; diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h index c0046f27..202e4394 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBlockSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -215,6 +215,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule */ OFCondition getSourceToBlockTrayDistance(Float64 &value, const unsigned long pos = 0) const; + /** get TrayAccessoryCode (300a,0355) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const; + // --- set DICOM attribute values --- /** set AccessoryCode (300a,00f9) @@ -301,6 +308,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule */ OFCondition setSourceToBlockTrayDistance(const OFString &value, const OFBool check = OFTrue); + /** set TrayAccessoryCode (300a,0355) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue); + private: /// internal flag used to mark the empty default item @@ -330,6 +344,8 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule DcmShortString MaterialID; /// SourceToBlockTrayDistance (300a,00f6) vr=DS, vm=1, type=2 DcmDecimalString SourceToBlockTrayDistance; + /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3 + DcmLongString TrayAccessoryCode; }; diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h index b6a15af0..e8201957 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDeviceLeafPairsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h index acadc81c..ff6ce85b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDevicePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h index 05d8c5ab..f31b6da1 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDeviceSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h index e23c7110..ddb7c228 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDeviceSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h index b3ca61b3..36ee4f6e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDeviceSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h index 8cc3222d..65c26f7b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamLimitingDeviceToleranceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h index 52a1c540..691797a5 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBreedRegistryCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h index 1926e814..9b81efc3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBrachyReferencedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h index bb5998fc..241af418 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBreedRegistrationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h index a585e4d7..56f003b5 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h index 1ef3ef99..b1998ae4 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBlockSlabSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h index 0084c67b..f6192d61 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTBeamDoseVerificationControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -111,12 +111,12 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence */ OFCondition getAverageBeamDosePointSSD(Float32 &value, const unsigned long pos = 0) const; - /** get AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131) + /** get AverageBeamDosePointSourceToExternalContourDistance (300a,0131) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition getAverageBeamDosePointSourceToExternalContourSurfaceDistance(Float32 &value, const unsigned long pos = 0) const; + OFCondition getAverageBeamDosePointSourceToExternalContourDistance(Float32 &value, const unsigned long pos = 0) const; /** get CumulativeMetersetWeight (300a,0134) * @param value reference to variable in which the value should be stored @@ -169,12 +169,12 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence */ OFCondition setAverageBeamDosePointSSD(const Float32 value, const unsigned long pos = 0); - /** set AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131) + /** set AverageBeamDosePointSourceToExternalContourDistance (300a,0131) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 * @return status, EC_Normal if successful, an error code otherwise */ - OFCondition setAverageBeamDosePointSourceToExternalContourSurfaceDistance(const Float32 value, const unsigned long pos = 0); + OFCondition setAverageBeamDosePointSourceToExternalContourDistance(const Float32 value, const unsigned long pos = 0); /** set CumulativeMetersetWeight (300a,0134) * @param value value to be set (single value only) or "" for no value @@ -201,8 +201,8 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence DcmFloatingPointSingle AverageBeamDosePointEquivalentDepth; /// AverageBeamDosePointSSD (300a,008f) vr=FL, vm=1, type=2C DcmFloatingPointSingle AverageBeamDosePointSSD; - /// AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131) vr=FL, vm=1, type=3 - DcmFloatingPointSingle AverageBeamDosePointSourceToExternalContourSurfaceDistance; + /// AverageBeamDosePointSourceToExternalContourDistance (300a,0131) vr=FL, vm=1, type=3 + DcmFloatingPointSingle AverageBeamDosePointSourceToExternalContourDistance; /// CumulativeMetersetWeight (300a,0134) vr=DS, vm=1, type=1 DcmDecimalString CumulativeMetersetWeight; /// ReferencedControlPointIndex (300c,00f0) vr=IS, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h index b4a8b961..b57b6cef 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContrastBolusAdministrationRouteSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -176,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -302,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -349,6 +363,8 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h index dbc3c4fd..633c090f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTConceptCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h index d9546ee1..d22d7eef 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTConsentForClinicalTrialUseSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h index e03002a0..e35b7323 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtces.h b/dcmrt/include/dcmtk/dcmrt/seq/drtces.h index 4ff68b03..2f7cb4d0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtces.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtces.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContributingEquipmentSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h new file mode 100644 index 00000000..e1f35903 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h @@ -0,0 +1,350 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTContextGroupIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTCGIS_H +#define DRTCGIS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for ContextGroupIdentificationSequence (0008,0123) + */ +class DCMTK_DCMRT_EXPORT DRTContextGroupIdentificationSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get ContextGroupVersion (0008,0106) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextIdentifier (0008,010f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const; + + /** get ContextUID (0008,0117) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextUID(OFString &value, const signed long pos = 0) const; + + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set ContextGroupVersion (0008,0106) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextIdentifier (0008,010f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue); + + /** set ContextUID (0008,0117) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1 + DcmDateTime ContextGroupVersion; + /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=1 + DcmCodeString ContextIdentifier; + /// ContextUID (0008,0117) vr=UI, vm=1, type=3 + DcmUniqueIdentifier ContextUID; + /// MappingResource (0008,0105) vr=CS, vm=1, type=1 + DcmCodeString MappingResource; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTContextGroupIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTContextGroupIdentificationSequence(const DRTContextGroupIdentificationSequence ©); + + /** destructor + */ + virtual ~DRTContextGroupIdentificationSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTContextGroupIdentificationSequence &operator=(const DRTContextGroupIdentificationSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h index a6138170..ca3062ee 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTChannelSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h index 014d4a43..e7f744ef 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContentItemModifierSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h index 2b6ca660..9f0e89c8 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContourImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h index d2fe4185..5332ae1f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTConceptNameCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h index b3165ac0..b534a862 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -302,6 +302,13 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence */ OFCondition getSourceToCompensatorTrayDistance(Float64 &value, const unsigned long pos = 0) const; + /** get TrayAccessoryCode (300a,0355) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const; + // --- set DICOM attribute values --- /** set AccessoryCode (300a,00f9) @@ -423,6 +430,13 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence */ OFCondition setSourceToCompensatorTrayDistance(const OFString &value, const OFBool check = OFTrue); + /** set TrayAccessoryCode (300a,0355) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue); + private: /// internal flag used to mark the empty default item @@ -462,6 +476,8 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence DcmDecimalString SourceToCompensatorDistance; /// SourceToCompensatorTrayDistance (300a,00e6) vr=DS, vm=1, type=2 DcmDecimalString SourceToCompensatorTrayDistance; + /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3 + DcmLongString TrayAccessoryCode; }; diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h index 2f272181..e0cac7b6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTCorrectedParameterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h index 76052a2c..fd65c118 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTConsultingPhysicianIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h index 996ace14..b3b39d40 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h index 1e90545e..08147c7a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTContourSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h index e57aa0e5..634e077b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTConversionSourceAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h index 273d59e2..3fdcbb1d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTChannelShieldSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h index 279ba042..1b63a039 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTCodingSchemeIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h index 5368bc55..f6f0fdec 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTChannelSourceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h index 49f3811f..d34a1c55 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDerivationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h new file mode 100644 index 00000000..b765db67 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h @@ -0,0 +1,366 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTDeliveredDepthDoseParametersSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTDDDPS_H +#define DRTDDDPS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for DeliveredDepthDoseParametersSequence (300a,0506) + */ +class DCMTK_DCMRT_EXPORT DRTDeliveredDepthDoseParametersSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get DeliveredDistalDepth (300a,0508) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeliveredDistalDepth(Float32 &value, const unsigned long pos = 0) const; + + /** get DeliveredDistalDepthFraction (300a,0507) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeliveredDistalDepthFraction(Float32 &value, const unsigned long pos = 0) const; + + /** get DeliveredNominalRangeModulatedRegionDepths (300a,0510) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeliveredNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos = 0) const; + + /** get DeliveredNominalRangeModulationFractions (300a,0509) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeliveredNominalRangeModulationFractions(Float32 &value, const unsigned long pos = 0) const; + + /** get DeliveredReferenceDoseDefinition (300a,0511) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeliveredReferenceDoseDefinition(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set DeliveredDistalDepth (300a,0508) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeliveredDistalDepth(const Float32 value, const unsigned long pos = 0); + + /** set DeliveredDistalDepthFraction (300a,0507) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeliveredDistalDepthFraction(const Float32 value, const unsigned long pos = 0); + + /** set DeliveredNominalRangeModulatedRegionDepths (300a,0510) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=2 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeliveredNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos = 0); + + /** set DeliveredNominalRangeModulationFractions (300a,0509) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=2 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeliveredNominalRangeModulationFractions(const Float32 value, const unsigned long pos = 0); + + /** set DeliveredReferenceDoseDefinition (300a,0511) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeliveredReferenceDoseDefinition(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// DeliveredDistalDepth (300a,0508) vr=FL, vm=1, type=1 + DcmFloatingPointSingle DeliveredDistalDepth; + /// DeliveredDistalDepthFraction (300a,0507) vr=FL, vm=1, type=1 + DcmFloatingPointSingle DeliveredDistalDepthFraction; + /// DeliveredNominalRangeModulatedRegionDepths (300a,0510) vr=FL, vm=2, type=1C + DcmFloatingPointSingle DeliveredNominalRangeModulatedRegionDepths; + /// DeliveredNominalRangeModulationFractions (300a,0509) vr=FL, vm=2, type=1C + DcmFloatingPointSingle DeliveredNominalRangeModulationFractions; + /// DeliveredReferenceDoseDefinition (300a,0511) vr=CS, vm=1, type=1 + DcmCodeString DeliveredReferenceDoseDefinition; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTDeliveredDepthDoseParametersSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTDeliveredDepthDoseParametersSequence(const DRTDeliveredDepthDoseParametersSequence ©); + + /** destructor + */ + virtual ~DRTDeliveredDepthDoseParametersSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTDeliveredDepthDoseParametersSequence &operator=(const DRTDeliveredDepthDoseParametersSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtddps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtddps.h new file mode 100644 index 00000000..61795423 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtddps.h @@ -0,0 +1,366 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTDepthDoseParametersSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTDDPS_H +#define DRTDDPS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for DepthDoseParametersSequence (300a,0505) + */ +class DCMTK_DCMRT_EXPORT DRTDepthDoseParametersSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get DistalDepth (300a,0502) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDistalDepth(Float32 &value, const unsigned long pos = 0) const; + + /** get DistalDepthFraction (300a,0501) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDistalDepthFraction(Float32 &value, const unsigned long pos = 0) const; + + /** get NominalRangeModulatedRegionDepths (300a,0504) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos = 0) const; + + /** get NominalRangeModulationFractions (300a,0503) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getNominalRangeModulationFractions(Float32 &value, const unsigned long pos = 0) const; + + /** get ReferenceDoseDefinition (300a,0512) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getReferenceDoseDefinition(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set DistalDepth (300a,0502) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDistalDepth(const Float32 value, const unsigned long pos = 0); + + /** set DistalDepthFraction (300a,0501) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDistalDepthFraction(const Float32 value, const unsigned long pos = 0); + + /** set NominalRangeModulatedRegionDepths (300a,0504) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=2 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos = 0); + + /** set NominalRangeModulationFractions (300a,0503) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=2 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setNominalRangeModulationFractions(const Float32 value, const unsigned long pos = 0); + + /** set ReferenceDoseDefinition (300a,0512) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setReferenceDoseDefinition(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// DistalDepth (300a,0502) vr=FL, vm=1, type=1 + DcmFloatingPointSingle DistalDepth; + /// DistalDepthFraction (300a,0501) vr=FL, vm=1, type=1 + DcmFloatingPointSingle DistalDepthFraction; + /// NominalRangeModulatedRegionDepths (300a,0504) vr=FL, vm=2, type=1C + DcmFloatingPointSingle NominalRangeModulatedRegionDepths; + /// NominalRangeModulationFractions (300a,0503) vr=FL, vm=2, type=1C + DcmFloatingPointSingle NominalRangeModulationFractions; + /// ReferenceDoseDefinition (300a,0512) vr=CS, vm=1, type=1 + DcmCodeString ReferenceDoseDefinition; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTDepthDoseParametersSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTDepthDoseParametersSequence(const DRTDepthDoseParametersSequence ©); + + /** destructor + */ + virtual ~DRTDepthDoseParametersSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTDepthDoseParametersSequence &operator=(const DRTDepthDoseParametersSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h index 9e66cb66..9290e42c 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDeidentificationActionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h index 40d30cb9..764c642d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDeidentificationMethodCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h index 9bca717c..9382829d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDICOMMediaRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h index ca2f9075..a0d0221c 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDICOMRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h index 254a86f3..7904dec6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtds.h index c1c1a547..4f71ad9f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -273,6 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -457,6 +464,13 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -522,6 +536,8 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence DcmLongString ManufacturerModelName; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h index 258b1b9c..041a5119 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDigitalSignaturePurposeCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h index 6def9ee7..b2686720 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDigitalSignaturesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h index ec4b5ce0..36f66dec 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDVHSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h index 4bffe6da..183e6692 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTDVHReferencedROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drteas.h b/dcmrt/include/dcmtk/dcmrt/seq/drteas.h index ca2279e0..e24f96d1 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drteas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drteas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTEncryptedAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h index 0bedc2c2..0f62eebd 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTEquivalentCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -118,6 +118,48 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence */ OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const; + /** get ContextGroupExtensionCreatorUID (0008,010d) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionFlag (0008,010b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupLocalVersion (0008,0107) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupVersion (0008,0106) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextIdentifier (0008,010f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const; + + /** get ContextUID (0008,0117) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextUID(OFString &value, const signed long pos = 0) const; + /** get LongCodeValue (0008,0119) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -125,6 +167,27 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence */ OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const; + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceUID (0008,0118) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const; + /** get URNCodeValue (0008,0120) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -162,6 +225,48 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence */ OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue); + /** set ContextGroupExtensionCreatorUID (0008,010d) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionFlag (0008,010b) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupLocalVersion (0008,0107) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupVersion (0008,0106) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextIdentifier (0008,010f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue); + + /** set ContextUID (0008,0117) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue); + /** set LongCodeValue (0008,0119) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled @@ -169,6 +274,27 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence */ OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue); + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceUID (0008,0118) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue); + /** set URNCodeValue (0008,0120) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UR) and VM (1) if enabled @@ -189,8 +315,26 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence DcmShortString CodingSchemeDesignator; /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C DcmShortString CodingSchemeVersion; + /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C + DcmUniqueIdentifier ContextGroupExtensionCreatorUID; + /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3 + DcmCodeString ContextGroupExtensionFlag; + /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupLocalVersion; + /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupVersion; + /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3 + DcmCodeString ContextIdentifier; + /// ContextUID (0008,0117) vr=UI, vm=1, type=3 + DcmUniqueIdentifier ContextUID; /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C DcmUnlimitedCharacters LongCodeValue; + /// MappingResource (0008,0105) vr=CS, vm=1, type=1C + DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; + /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 + DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C DcmUniversalResourceIdentifierOrLocator URNCodeValue; diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtes.h b/dcmrt/include/dcmtk/dcmrt/seq/drtes.h index 91d48518..3071b843 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtes.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtes.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTExposureSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h index 3958b4e5..7ce7ecca 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFixationDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h index c0b838ae..9b9a4974 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFrameExtractionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h index 271ad229..c94f441a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFractionGroupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h index 2d51366d..59a5551c 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFractionGroupSummarySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h index 8f86405c..a780ad50 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFluenceMapSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h index ae70ff56..9b6a1688 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTFractionStatusSummarySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h index 996eb8bf..23c02799 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTGeneralAccessorySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h new file mode 100644 index 00000000..4ff3aaee --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h @@ -0,0 +1,367 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTGroupOfPatientsIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTGPIS_H +#define DRTGPIS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence + + +/** Interface class for GroupOfPatientsIdentificationSequence (0010,0027) + */ +class DCMTK_DCMRT_EXPORT DRTGroupOfPatientsIdentificationSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get IssuerOfPatientID (0010,0021) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + + /** get PatientID (0010,0020) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPatientID(OFString &value, const signed long pos = 0) const; + + /** get PatientPosition (0018,5100) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPatientPosition(OFString &value, const signed long pos = 0) const; + + /** get SubjectRelativePositionInImage (0010,0028) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getSubjectRelativePositionInImage(Uint16 &value, const unsigned long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get IssuerOfPatientIDQualifiersSequence (0010,0024) + * @return reference to sequence element + */ + DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence() + { return IssuerOfPatientIDQualifiersSequence; } + + /** get IssuerOfPatientIDQualifiersSequence (0010,0024) + * @return const reference to sequence element + */ + const DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence() const + { return IssuerOfPatientIDQualifiersSequence; } + + // --- set DICOM attribute values --- + + /** set IssuerOfPatientID (0010,0021) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + + /** set PatientID (0010,0020) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPatientID(const OFString &value, const OFBool check = OFTrue); + + /** set PatientPosition (0018,5100) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPatientPosition(const OFString &value, const OFBool check = OFTrue); + + /** set SubjectRelativePositionInImage (0010,0028) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=3 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setSubjectRelativePositionInImage(const Uint16 value, const unsigned long pos = 0); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// IssuerOfPatientID (0010,0021) vr=LO, vm=1, type=3 + DcmLongString IssuerOfPatientID; + /// IssuerOfPatientIDQualifiersSequence (0010,0024) vr=SQ, vm=1, type=3 + DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; + /// PatientID (0010,0020) vr=LO, vm=1, type=1 + DcmLongString PatientID; + /// PatientPosition (0018,5100) vr=CS, vm=1, type=3 + DcmCodeString PatientPosition; + /// SubjectRelativePositionInImage (0010,0028) vr=US, vm=3, type=3 + DcmUnsignedShort SubjectRelativePositionInImage; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTGroupOfPatientsIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTGroupOfPatientsIdentificationSequence(const DRTGroupOfPatientsIdentificationSequence ©); + + /** destructor + */ + virtual ~DRTGroupOfPatientsIdentificationSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTGroupOfPatientsIdentificationSequence &operator=(const DRTGroupOfPatientsIdentificationSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h index 0b84aa3c..a55b6b78 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTHL7StructuredDocumentReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h index 3426c48a..2bbbdf83 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIssuerOfAdmissionIDSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtians.h b/dcmrt/include/dcmtk/dcmrt/seq/drtians.h index d3c22e62..89f22f01 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtians.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtians.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIssuerOfAccessionNumberSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h index 253673f8..9964a4a6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonBeamLimitingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h index d1cf983f..380f1607 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonBlockSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h index 105ab416..9bf0a824 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -20,6 +20,7 @@ #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class #include "dcmtk/dcmrt/seq/drtas6.h" // for ApplicatorSequence +#include "dcmtk/dcmrt/seq/drtddps.h" // for DepthDoseParametersSequence #include "dcmtk/dcmrt/seq/drtgas.h" // for GeneralAccessorySequence #include "dcmtk/dcmrt/seq/drtiblds.h" // for IonBeamLimitingDeviceSequence #include "dcmtk/dcmrt/seq/drtibls.h" // for IonBlockSequence @@ -160,6 +161,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence */ OFCondition getFinalCumulativeMetersetWeight(Float64 &value, const unsigned long pos = 0) const; + /** get FixationEye (300a,0150) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationEye(OFString &value, const signed long pos = 0) const; + /** get FixationLightAzimuthalAngle (300a,0356) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -209,6 +217,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence */ OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const; + /** get ModulatedScanModeType (300a,0309) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getModulatedScanModeType(OFString &value, const signed long pos = 0) const; + /** get NumberOfBlocks (300a,00f0) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -482,6 +497,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence const DRTApplicatorSequenceInRTIonBeamsModule &getApplicatorSequence() const { return ApplicatorSequence; } + /** get DepthDoseParametersSequence (300a,0505) + * @return reference to sequence element + */ + DRTDepthDoseParametersSequence &getDepthDoseParametersSequence() + { return DepthDoseParametersSequence; } + + /** get DepthDoseParametersSequence (300a,0505) + * @return const reference to sequence element + */ + const DRTDepthDoseParametersSequence &getDepthDoseParametersSequence() const + { return DepthDoseParametersSequence; } + /** get GeneralAccessorySequence (300a,0420) * @return reference to sequence element */ @@ -682,6 +709,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence */ OFCondition setFinalCumulativeMetersetWeight(const OFString &value, const OFBool check = OFTrue); + /** set FixationEye (300a,0150) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setFixationEye(const OFString &value, const OFBool check = OFTrue); + /** set FixationLightAzimuthalAngle (300a,0356) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -731,6 +765,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence */ OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue); + /** set ModulatedScanModeType (300a,0309) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setModulatedScanModeType(const OFString &value, const OFBool check = OFTrue); + /** set NumberOfBlocks (300a,00f0) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (IS) and VM (1) if enabled @@ -921,10 +962,14 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence DcmIntegerString BeamNumber; /// BeamType (300a,00c4) vr=CS, vm=1, type=1 DcmCodeString BeamType; + /// DepthDoseParametersSequence (300a,0505) vr=SQ, vm=1, type=3 + DRTDepthDoseParametersSequence DepthDoseParametersSequence; /// DeviceSerialNumber (0018,1000) vr=LO, vm=1, type=3 DcmLongString DeviceSerialNumber; /// FinalCumulativeMetersetWeight (300a,010e) vr=DS, vm=1, type=1C DcmDecimalString FinalCumulativeMetersetWeight; + /// FixationEye (300a,0150) vr=CS, vm=1, type=3 + DcmCodeString FixationEye; /// FixationLightAzimuthalAngle (300a,0356) vr=FL, vm=1, type=3 DcmFloatingPointSingle FixationLightAzimuthalAngle; /// FixationLightPolarAngle (300a,0358) vr=FL, vm=1, type=3 @@ -953,6 +998,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence DcmLongString Manufacturer; /// ManufacturerModelName (0008,1090) vr=LO, vm=1, type=3 DcmLongString ManufacturerModelName; + /// ModulatedScanModeType (300a,0309) vr=CS, vm=1, type=1C + DcmCodeString ModulatedScanModeType; /// NumberOfBlocks (300a,00f0) vr=IS, vm=1, type=1 DcmIntegerString NumberOfBlocks; /// NumberOfBoli (300a,00ed) vr=IS, vm=1, type=1 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h b/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h index 5cd017c9..7a10877b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonControlPointDeliverySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -118,6 +118,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence */ OFCondition getBeamLimitingDeviceRotationDirection(OFString &value, const signed long pos = 0) const; + /** get ChairHeadFramePosition (300a,0151) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePosition(OFString &value, const signed long pos = 0) const; + + /** get ChairHeadFramePosition (300a,0151) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePosition(Float64 &value, const unsigned long pos = 0) const; + /** get DeliveredMeterset (3008,0044) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -293,6 +307,27 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence */ OFCondition getScanSpotPositionMap(Float32 &value, const unsigned long pos = 0) const; + /** get ScanSpotPrescribedIndices (300a,0391) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getScanSpotPrescribedIndices(OFString &value, const signed long pos = 0) const; + + /** get ScanSpotPrescribedIndices (300a,0391) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getScanSpotPrescribedIndices(Sint32 &value, const unsigned long pos = 0) const; + + /** get ScanSpotReordered (300a,0393) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getScanSpotReordered(OFString &value, const signed long pos = 0) const; + /** get ScanSpotTuneID (300a,0390) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -514,6 +549,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence */ OFCondition setBeamLimitingDeviceRotationDirection(const OFString &value, const OFBool check = OFTrue); + /** set ChairHeadFramePosition (300a,0151) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setChairHeadFramePosition(const OFString &value, const OFBool check = OFTrue); + /** set DeliveredMeterset (3008,0044) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -633,6 +675,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence */ OFCondition setScanSpotPositionMap(const Float32 value, const unsigned long pos = 0); + /** set ScanSpotPrescribedIndices (300a,0391) + * @param value value to be set (possibly multi-valued) or "" for no value + * @param check check 'value' for conformance with VR (IS) and VM (1-n) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setScanSpotPrescribedIndices(const OFString &value, const OFBool check = OFTrue); + + /** set ScanSpotReordered (300a,0393) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setScanSpotReordered(const OFString &value, const OFBool check = OFTrue); + /** set ScanSpotTuneID (300a,0390) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled @@ -735,6 +791,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence DRTBeamLimitingDevicePositionSequence BeamLimitingDevicePositionSequence; /// BeamLimitingDeviceRotationDirection (300a,0121) vr=CS, vm=1, type=1C DcmCodeString BeamLimitingDeviceRotationDirection; + /// ChairHeadFramePosition (300a,0151) vr=DS, vm=1, type=3 + DcmDecimalString ChairHeadFramePosition; /// CorrectedParameterSequence (3008,0068) vr=SQ, vm=1, type=3 DRTCorrectedParameterSequence CorrectedParameterSequence; /// DeliveredMeterset (3008,0044) vr=DS, vm=1, type=1 @@ -781,6 +839,10 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence DcmFloatingPointSingle ScanSpotMetersetsDelivered; /// ScanSpotPositionMap (300a,0394) vr=FL, vm=1-n, type=1C DcmFloatingPointSingle ScanSpotPositionMap; + /// ScanSpotPrescribedIndices (300a,0391) vr=IS, vm=1-n, type=1C + DcmIntegerString ScanSpotPrescribedIndices; + /// ScanSpotReordered (300a,0393) vr=CS, vm=1, type=3 + DcmCodeString ScanSpotReordered; /// ScanSpotTuneID (300a,0390) vr=SH, vm=1, type=1C DcmShortString ScanSpotTuneID; /// ScanningSpotSize (300a,0398) vr=FL, vm=2, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drticps.h b/dcmrt/include/dcmtk/dcmrt/seq/drticps.h index e13581a9..7e846ae9 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drticps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drticps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -117,6 +117,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence */ OFCondition getBeamLimitingDeviceRotationDirection(OFString &value, const signed long pos = 0) const; + /** get ChairHeadFramePosition (300a,0151) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePosition(OFString &value, const signed long pos = 0) const; + + /** get ChairHeadFramePosition (300a,0151) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePosition(Float64 &value, const unsigned long pos = 0) const; + /** get ControlPointIndex (300a,0112) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -312,6 +326,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence */ OFCondition getScanSpotPositionMap(Float32 &value, const unsigned long pos = 0) const; + /** get ScanSpotReorderingAllowed (300a,0395) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getScanSpotReorderingAllowed(OFString &value, const signed long pos = 0) const; + /** get ScanSpotTuneID (300a,0390) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -513,6 +534,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence */ OFCondition setBeamLimitingDeviceRotationDirection(const OFString &value, const OFBool check = OFTrue); + /** set ChairHeadFramePosition (300a,0151) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setChairHeadFramePosition(const OFString &value, const OFBool check = OFTrue); + /** set ControlPointIndex (300a,0112) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (IS) and VM (1) if enabled @@ -639,6 +667,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence */ OFCondition setScanSpotPositionMap(const Float32 value, const unsigned long pos = 0); + /** set ScanSpotReorderingAllowed (300a,0395) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setScanSpotReorderingAllowed(const OFString &value, const OFBool check = OFTrue); + /** set ScanSpotTuneID (300a,0390) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled @@ -727,6 +762,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence DRTBeamLimitingDevicePositionSequence BeamLimitingDevicePositionSequence; /// BeamLimitingDeviceRotationDirection (300a,0121) vr=CS, vm=1, type=1C DcmCodeString BeamLimitingDeviceRotationDirection; + /// ChairHeadFramePosition (300a,0151) vr=DS, vm=1, type=3 + DcmDecimalString ChairHeadFramePosition; /// ControlPointIndex (300a,0112) vr=IS, vm=1, type=1 DcmIntegerString ControlPointIndex; /// CumulativeMetersetWeight (300a,0134) vr=DS, vm=1, type=2 @@ -773,6 +810,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence DcmFloatingPointSingle ScanSpotMetersetWeights; /// ScanSpotPositionMap (300a,0394) vr=FL, vm=1-n, type=1C DcmFloatingPointSingle ScanSpotPositionMap; + /// ScanSpotReorderingAllowed (300a,0395) vr=CS, vm=1, type=3 + DcmCodeString ScanSpotReorderingAllowed; /// ScanSpotTuneID (300a,0390) vr=SH, vm=1, type=1C DcmShortString ScanSpotTuneID; /// ScanningSpotSize (300a,0398) vr=FL, vm=2, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtics.h index 653883f2..96f22efa 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtics.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtics.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTInstitutionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h index de08f191..90e4d65b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIconImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -118,6 +118,13 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence */ OFCondition getBluePaletteColorLookupTableDescriptor(Uint16 &value, const unsigned long pos = 0) const; + /** get ColorSpace (0028,2002) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getColorSpace(OFString &value, const signed long pos = 0) const; + /** get Columns (0028,0011) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -274,6 +281,13 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence */ OFCondition setBluePaletteColorLookupTableDescriptor(const Uint16 value, const unsigned long pos = 0); + /** set ColorSpace (0028,2002) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue); + /** set Columns (0028,0011) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -392,6 +406,8 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence DcmOtherByteOtherWord BluePaletteColorLookupTableData; /// BluePaletteColorLookupTableDescriptor (0028,1103) vr=US/SS, vm=3, type=1C DcmUnsignedShort BluePaletteColorLookupTableDescriptor; + /// ColorSpace (0028,2002) vr=CS, vm=1, type=3 + DcmCodeString ColorSpace; /// Columns (0028,0011) vr=US, vm=1, type=1 DcmUnsignedShort Columns; /// GreenPaletteColorLookupTableData (0028,1202) vr=OW, vm=1, type=1C @@ -408,7 +424,7 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence DcmCodeString PhotometricInterpretation; /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C DcmIntegerString PixelAspectRatio; - /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C + /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1 DcmPixelData PixelData; /// PixelRepresentation (0028,0103) vr=US, vm=1, type=1 DcmUnsignedShort PixelRepresentation; diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h index 60405a4c..6b6b36d0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIssuerOfPatientIDQualifiersSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h index 0cd39696..5eec2b3b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonRangeCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h index bc19b3eb..45bb3ebc 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIssuerOfServiceEpisodeIDSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h b/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h index 957209a9..412c98f8 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonToleranceTableSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -105,6 +105,48 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence */ OFCondition getBeamLimitingDeviceAngleTolerance(Float64 &value, const unsigned long pos = 0) const; + /** get ChairHeadFramePositionTolerance (300a,0153) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePositionTolerance(OFString &value, const signed long pos = 0) const; + + /** get ChairHeadFramePositionTolerance (300a,0153) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getChairHeadFramePositionTolerance(Float64 &value, const unsigned long pos = 0) const; + + /** get FixationLightAzimuthalAngleTolerance (300a,0154) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationLightAzimuthalAngleTolerance(OFString &value, const signed long pos = 0) const; + + /** get FixationLightAzimuthalAngleTolerance (300a,0154) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationLightAzimuthalAngleTolerance(Float64 &value, const unsigned long pos = 0) const; + + /** get FixationLightPolarAngleTolerance (300a,0155) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationLightPolarAngleTolerance(OFString &value, const signed long pos = 0) const; + + /** get FixationLightPolarAngleTolerance (300a,0155) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationLightPolarAngleTolerance(Float64 &value, const unsigned long pos = 0) const; + /** get GantryAngleTolerance (300a,0044) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -119,6 +161,20 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence */ OFCondition getGantryAngleTolerance(Float64 &value, const unsigned long pos = 0) const; + /** get HeadFixationAngleTolerance (300a,0152) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getHeadFixationAngleTolerance(OFString &value, const signed long pos = 0) const; + + /** get HeadFixationAngleTolerance (300a,0152) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getHeadFixationAngleTolerance(Float64 &value, const unsigned long pos = 0) const; + /** get PatientSupportAngleTolerance (300a,004c) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -240,6 +296,27 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence */ OFCondition setBeamLimitingDeviceAngleTolerance(const OFString &value, const OFBool check = OFTrue); + /** set ChairHeadFramePositionTolerance (300a,0153) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setChairHeadFramePositionTolerance(const OFString &value, const OFBool check = OFTrue); + + /** set FixationLightAzimuthalAngleTolerance (300a,0154) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setFixationLightAzimuthalAngleTolerance(const OFString &value, const OFBool check = OFTrue); + + /** set FixationLightPolarAngleTolerance (300a,0155) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setFixationLightPolarAngleTolerance(const OFString &value, const OFBool check = OFTrue); + /** set GantryAngleTolerance (300a,0044) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -247,6 +324,13 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence */ OFCondition setGantryAngleTolerance(const OFString &value, const OFBool check = OFTrue); + /** set HeadFixationAngleTolerance (300a,0152) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setHeadFixationAngleTolerance(const OFString &value, const OFBool check = OFTrue); + /** set PatientSupportAngleTolerance (300a,004c) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -319,8 +403,16 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence DcmDecimalString BeamLimitingDeviceAngleTolerance; /// BeamLimitingDeviceToleranceSequence (300a,0048) vr=SQ, vm=1, type=3 DRTBeamLimitingDeviceToleranceSequence BeamLimitingDeviceToleranceSequence; + /// ChairHeadFramePositionTolerance (300a,0153) vr=DS, vm=1, type=3 + DcmDecimalString ChairHeadFramePositionTolerance; + /// FixationLightAzimuthalAngleTolerance (300a,0154) vr=DS, vm=1, type=3 + DcmDecimalString FixationLightAzimuthalAngleTolerance; + /// FixationLightPolarAngleTolerance (300a,0155) vr=DS, vm=1, type=3 + DcmDecimalString FixationLightPolarAngleTolerance; /// GantryAngleTolerance (300a,0044) vr=DS, vm=1, type=3 DcmDecimalString GantryAngleTolerance; + /// HeadFixationAngleTolerance (300a,0152) vr=DS, vm=1, type=3 + DcmDecimalString HeadFixationAngleTolerance; /// PatientSupportAngleTolerance (300a,004c) vr=DS, vm=1, type=3 DcmDecimalString PatientSupportAngleTolerance; /// SnoutPositionTolerance (300a,004b) vr=FL, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h index fb5df8b0..841245b0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonWedgePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h index 5e4800c4..e0bf71d4 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTIonWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h index 0bd66a70..aebc3a41 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTLateralSpreadingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h index 45ec9aa9..c04e5886 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h index 4f57af6c..696a95e4 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h index 9ebcc727..941ec5f9 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTMultiplexedAudioChannelsDescriptionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h index 040061c5..337a1740 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTModifiedAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h index 4b6cd505..0f349ab1 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h index 3fab93e0..cd52606e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTModalityLUTSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -153,13 +153,13 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; - /// LUTData (0028,3006) vr=US/OW, vm=1-n, type=1C + /// LUTData (0028,3006) vr=US/OW, vm=1-n, type=1 DcmOtherByteOtherWord LUTData; - /// LUTDescriptor (0028,3002) vr=US/SS, vm=3, type=1C + /// LUTDescriptor (0028,3002) vr=US/SS, vm=3, type=1 DcmUnsignedShort LUTDescriptor; /// LUTExplanation (0028,3003) vr=LO, vm=1, type=3 DcmLongString LUTExplanation; - /// ModalityLUTType (0028,3004) vr=LO, vm=1, type=1C + /// ModalityLUTType (0028,3004) vr=LO, vm=1, type=1 DcmLongString ModalityLUTType; }; diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h index 8cb09f28..1fa56672 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTMACParametersSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmris.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmris.h new file mode 100644 index 00000000..8f1c50f7 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmris.h @@ -0,0 +1,334 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTMappingResourceIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTMRIS_H +#define DRTMRIS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for MappingResourceIdentificationSequence (0008,0124) + */ +class DCMTK_DCMRT_EXPORT DRTMappingResourceIdentificationSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceUID (0008,0118) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceUID (0008,0118) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// MappingResource (0008,0105) vr=CS, vm=1, type=1 + DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; + /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 + DcmUniqueIdentifier MappingResourceUID; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTMappingResourceIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTMappingResourceIdentificationSequence(const DRTMappingResourceIdentificationSequence ©); + + /** destructor + */ + virtual ~DRTMappingResourceIdentificationSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTMappingResourceIdentificationSequence &operator=(const DRTMappingResourceIdentificationSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h index 586f153a..2cac77d0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTMotionSynchronizationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h index 6f73d721..523f4608 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTMeasurementUnitsCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h index b0de7e0e..f6ca951f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTOriginalAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtois.h b/dcmrt/include/dcmtk/dcmrt/seq/drtois.h index 68c33b91..78238b6e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtois.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtois.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTOperatorIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h index c1f068f8..471a183d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTOtherPatientIDsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtos.h index eee419e0..ec2edaa9 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtos.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtos.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTOverrideSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -19,6 +19,7 @@ #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtois.h" // for OperatorIdentificationSequence /** Interface class for OverrideSequence (3008,0060) @@ -132,6 +133,20 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence */ OFCondition getParameterSequencePointer(OFString &value, const signed long pos = 0) const; + // --- get DICOM sequence attributes --- + + /** get OperatorIdentificationSequence (0008,1072) + * @return reference to sequence element + */ + DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() + { return OperatorIdentificationSequence; } + + /** get OperatorIdentificationSequence (0008,1072) + * @return const reference to sequence element + */ + const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const + { return OperatorIdentificationSequence; } + // --- set DICOM attribute values --- /** set OperatorsName (0008,1070) @@ -174,6 +189,8 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; + /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3 + DRTOperatorIdentificationSequence OperatorIdentificationSequence; /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2 DcmPersonName OperatorsName; /// OverrideParameterPointer (3008,0062) vr=AT, vm=1, type=1 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h index a044d022..193b509d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPatientBreedCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h index 06942a6b..1eea6c2a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h index db5baa51..5021cbee 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTProtocolContextSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h index 7cbca8a6..40d62df5 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPrivateDataElementCharacteristicsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -20,6 +20,7 @@ #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class #include "dcmtk/dcmrt/seq/drtdias.h" // for DeidentificationActionSequence +#include "dcmtk/dcmrt/seq/drtpdeds.h" // for PrivateDataElementDefinitionSequence /** Interface class for PrivateDataElementCharacteristicsSequence (0008,0300) @@ -133,6 +134,18 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence const DRTDeidentificationActionSequence &getDeidentificationActionSequence() const { return DeidentificationActionSequence; } + /** get PrivateDataElementDefinitionSequence (0008,0310) + * @return reference to sequence element + */ + DRTPrivateDataElementDefinitionSequence &getPrivateDataElementDefinitionSequence() + { return PrivateDataElementDefinitionSequence; } + + /** get PrivateDataElementDefinitionSequence (0008,0310) + * @return const reference to sequence element + */ + const DRTPrivateDataElementDefinitionSequence &getPrivateDataElementDefinitionSequence() const + { return PrivateDataElementDefinitionSequence; } + // --- set DICOM attribute values --- /** set BlockIdentifyingInformationStatus (0008,0303) @@ -176,6 +189,8 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence DcmUnsignedShort NonidentifyingPrivateElements; /// PrivateCreatorReference (0008,0302) vr=LO, vm=1, type=1 DcmLongString PrivateCreatorReference; + /// PrivateDataElementDefinitionSequence (0008,0310) vr=SQ, vm=1, type=3 + DRTPrivateDataElementDefinitionSequence PrivateDataElementDefinitionSequence; /// PrivateGroupReference (0008,0301) vr=US, vm=1, type=1 DcmUnsignedShort PrivateGroupReference; diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h new file mode 100644 index 00000000..4cf46947 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h @@ -0,0 +1,430 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTPrivateDataElementDefinitionSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTPDEDS_H +#define DRTPDEDS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for PrivateDataElementDefinitionSequence (0008,0310) + */ +class DCMTK_DCMRT_EXPORT DRTPrivateDataElementDefinitionSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get PrivateDataElement (0008,0308) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElement(Uint16 &value, const unsigned long pos = 0) const; + + /** get PrivateDataElementDescription (0008,030e) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementDescription(OFString &value, const signed long pos = 0) const; + + /** get PrivateDataElementEncoding (0008,030f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementEncoding(OFString &value, const signed long pos = 0) const; + + /** get PrivateDataElementKeyword (0008,030d) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementKeyword(OFString &value, const signed long pos = 0) const; + + /** get PrivateDataElementName (0008,030c) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementName(OFString &value, const signed long pos = 0) const; + + /** get PrivateDataElementNumberOfItems (0008,030b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementNumberOfItems(Uint32 &value, const unsigned long pos = 0) const; + + /** get PrivateDataElementValueMultiplicity (0008,0309) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementValueMultiplicity(Uint32 &value, const unsigned long pos = 0) const; + + /** get PrivateDataElementValueRepresentation (0008,030a) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPrivateDataElementValueRepresentation(OFString &value, const signed long pos = 0) const; + + /** get RetrieveURI (0040,e010) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getRetrieveURI(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set PrivateDataElement (0008,0308) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElement(const Uint16 value, const unsigned long pos = 0); + + /** set PrivateDataElementDescription (0008,030e) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementDescription(const OFString &value, const OFBool check = OFTrue); + + /** set PrivateDataElementEncoding (0008,030f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementEncoding(const OFString &value, const OFBool check = OFTrue); + + /** set PrivateDataElementKeyword (0008,030d) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementKeyword(const OFString &value, const OFBool check = OFTrue); + + /** set PrivateDataElementName (0008,030c) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementName(const OFString &value, const OFBool check = OFTrue); + + /** set PrivateDataElementNumberOfItems (0008,030b) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1-2 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementNumberOfItems(const Uint32 value, const unsigned long pos = 0); + + /** set PrivateDataElementValueMultiplicity (0008,0309) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1-3 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementValueMultiplicity(const Uint32 value, const unsigned long pos = 0); + + /** set PrivateDataElementValueRepresentation (0008,030a) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPrivateDataElementValueRepresentation(const OFString &value, const OFBool check = OFTrue); + + /** set RetrieveURI (0040,e010) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UR) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setRetrieveURI(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// PrivateDataElement (0008,0308) vr=US, vm=1, type=1 + DcmUnsignedShort PrivateDataElement; + /// PrivateDataElementDescription (0008,030e) vr=UT, vm=1, type=3 + DcmUnlimitedText PrivateDataElementDescription; + /// PrivateDataElementEncoding (0008,030f) vr=UT, vm=1, type=3 + DcmUnlimitedText PrivateDataElementEncoding; + /// PrivateDataElementKeyword (0008,030d) vr=UC, vm=1, type=1 + DcmUnlimitedCharacters PrivateDataElementKeyword; + /// PrivateDataElementName (0008,030c) vr=UC, vm=1, type=1 + DcmUnlimitedCharacters PrivateDataElementName; + /// PrivateDataElementNumberOfItems (0008,030b) vr=UL, vm=1-2, type=1C + DcmUnsignedLong PrivateDataElementNumberOfItems; + /// PrivateDataElementValueMultiplicity (0008,0309) vr=UL, vm=1-3, type=1 + DcmUnsignedLong PrivateDataElementValueMultiplicity; + /// PrivateDataElementValueRepresentation (0008,030a) vr=CS, vm=1, type=1 + DcmCodeString PrivateDataElementValueRepresentation; + /// RetrieveURI (0040,e010) vr=UR, vm=1, type=3 + DcmUniversalResourceIdentifierOrLocator RetrieveURI; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTPrivateDataElementDefinitionSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTPrivateDataElementDefinitionSequence(const DRTPrivateDataElementDefinitionSequence ©); + + /** destructor + */ + virtual ~DRTPrivateDataElementDefinitionSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTPrivateDataElementDefinitionSequence &operator=(const DRTPrivateDataElementDefinitionSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h index 6a2c7441..1b588eb1 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPrimaryFluenceModeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h index 18379149..40aa6758 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPersonIdentificationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h index 3f60799a..becf5136 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPurposeOfReferenceCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h index c320ab3d..4df74d94 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPhysiciansOfRecordIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h index 61d23144..776c9189 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPerformedProtocolCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -176,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -302,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -347,6 +361,8 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// ProtocolContextSequence (0040,0440) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h index 77a56c7d..46ecf79b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPhysiciansReadingStudyIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h index 4e449dda..23954282 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPatientSpeciesCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h index 4b782662..0badc095 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPatientSizeCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h index 86868409..4cb5bd74 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPatientSetupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h index 2d03e6c0..af423cf1 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPredecessorStructureSetSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h index b0ec5873..a0e115d6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTPlannedVerificationImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h index 510cac7f..854f84bf 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTQuantityDefinitionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtras.h b/dcmrt/include/dcmtk/dcmrt/seq/drtras.h index 93c3fb56..1a47bca2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtras.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtras.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRequestAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h index cd7017b0..83388b4e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h index 9bd023c9..d845bb78 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h index 2fe40143..7a106548 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedBlockSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h index ddf9cd54..602cddc1 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBolusSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h index 50524c87..b2d3c850 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBolusSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h index 2f63cf4f..4ecd78e8 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h index ff393304..847bb037 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBeamSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h index 4eb30e68..4ad6d467 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -91,6 +91,27 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu // --- get DICOM attribute values --- + /** get AlternateBeamDose (300a,0091) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDose(OFString &value, const signed long pos = 0) const; + + /** get AlternateBeamDose (300a,0091) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDose(Float64 &value, const unsigned long pos = 0) const; + + /** get AlternateBeamDoseType (300a,0092) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDoseType(OFString &value, const signed long pos = 0) const; + /** get BeamDeliveryDurationLimit (300a,00c5) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -132,6 +153,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu */ OFCondition getBeamDoseSpecificationPoint(OFVector &value) const; + /** get BeamDoseType (300a,0090) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getBeamDoseType(OFString &value, const signed long pos = 0) const; + /** get BeamMeterset (300a,0086) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -176,6 +204,20 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu // --- set DICOM attribute values --- + /** set AlternateBeamDose (300a,0091) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setAlternateBeamDose(const OFString &value, const OFBool check = OFTrue); + + /** set AlternateBeamDoseType (300a,0092) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setAlternateBeamDoseType(const OFString &value, const OFBool check = OFTrue); + /** set BeamDeliveryDurationLimit (300a,00c5) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -197,6 +239,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu */ OFCondition setBeamDoseSpecificationPoint(const OFString &value, const OFBool check = OFTrue); + /** set BeamDoseType (300a,0090) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setBeamDoseType(const OFString &value, const OFBool check = OFTrue); + /** set BeamMeterset (300a,0086) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -216,12 +265,18 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; + /// AlternateBeamDose (300a,0091) vr=DS, vm=1, type=3 + DcmDecimalString AlternateBeamDose; + /// AlternateBeamDoseType (300a,0092) vr=CS, vm=1, type=1C + DcmCodeString AlternateBeamDoseType; /// BeamDeliveryDurationLimit (300a,00c5) vr=FD, vm=1, type=3 DcmFloatingPointDouble BeamDeliveryDurationLimit; /// BeamDose (300a,0084) vr=DS, vm=1, type=3 DcmDecimalString BeamDose; /// BeamDoseSpecificationPoint (300a,0082) vr=DS, vm=3, type=3 DcmDecimalString BeamDoseSpecificationPoint; + /// BeamDoseType (300a,0090) vr=CS, vm=1, type=1C + DcmCodeString BeamDoseType; /// BeamDoseVerificationControlPointSequence (300a,008c) vr=SQ, vm=1, type=3 DRTBeamDoseVerificationControlPointSequence BeamDoseVerificationControlPointSequence; /// BeamMeterset (300a,0086) vr=DS, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h index 335d75e8..d2b2de94 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedBeamSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -91,6 +91,27 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule // --- get DICOM attribute values --- + /** get AlternateBeamDose (300a,0091) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDose(OFString &value, const signed long pos = 0) const; + + /** get AlternateBeamDose (300a,0091) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDose(Float64 &value, const unsigned long pos = 0) const; + + /** get AlternateBeamDoseType (300a,0092) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getAlternateBeamDoseType(OFString &value, const signed long pos = 0) const; + /** get BeamDeliveryDurationLimit (300a,00c5) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -132,6 +153,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule */ OFCondition getBeamDoseSpecificationPoint(OFVector &value) const; + /** get BeamDoseType (300a,0090) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getBeamDoseType(OFString &value, const signed long pos = 0) const; + /** get BeamMeterset (300a,0086) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -176,6 +204,20 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule // --- set DICOM attribute values --- + /** set AlternateBeamDose (300a,0091) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setAlternateBeamDose(const OFString &value, const OFBool check = OFTrue); + + /** set AlternateBeamDoseType (300a,0092) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setAlternateBeamDoseType(const OFString &value, const OFBool check = OFTrue); + /** set BeamDeliveryDurationLimit (300a,00c5) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -197,6 +239,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule */ OFCondition setBeamDoseSpecificationPoint(const OFString &value, const OFBool check = OFTrue); + /** set BeamDoseType (300a,0090) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setBeamDoseType(const OFString &value, const OFBool check = OFTrue); + /** set BeamMeterset (300a,0086) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (DS) and VM (1) if enabled @@ -216,12 +265,18 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; + /// AlternateBeamDose (300a,0091) vr=DS, vm=1, type=3 + DcmDecimalString AlternateBeamDose; + /// AlternateBeamDoseType (300a,0092) vr=CS, vm=1, type=1C + DcmCodeString AlternateBeamDoseType; /// BeamDeliveryDurationLimit (300a,00c5) vr=FD, vm=1, type=3 DcmFloatingPointDouble BeamDeliveryDurationLimit; /// BeamDose (300a,0084) vr=DS, vm=1, type=3 DcmDecimalString BeamDose; /// BeamDoseSpecificationPoint (300a,0082) vr=DS, vm=3, type=3 DcmDecimalString BeamDoseSpecificationPoint; + /// BeamDoseType (300a,0090) vr=CS, vm=1, type=1C + DcmCodeString BeamDoseType; /// BeamDoseVerificationControlPointSequence (300a,008c) vr=SQ, vm=1, type=3 DRTBeamDoseVerificationControlPointSequence BeamDoseVerificationControlPointSequence; /// BeamMeterset (300a,0086) vr=DS, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h index 8928e896..b1a5d6be 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h index eba6728e..df9de936 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h index 9f1e4961..4e0d78cd 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h index d24f3e92..34e869e5 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTROIContourSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h index 80bfbe0b..8fa3fc41 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTDoseROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h index 31738280..7b088a84 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedDoseReferenceSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h index 17320847..3a8c733d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedDoseReferenceSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h index 119e77f7..34792c28 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h index 40e6bca8..79c37549 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedDoseSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h index 20b6b1ee..e29b110e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTROIElementalCompositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h index 79fad866..8c92e11e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedFractionGroupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h index 514fb87c..a7fb0ee8 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedFrameOfReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h index 2aee19aa..a9effc21 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTROIIdentificationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -20,6 +20,7 @@ #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class #include "dcmtk/dcmrt/seq/drtecs.h" // for EquivalentCodeSequence +#include "dcmtk/dcmrt/seq/drtsptcs.h" // for SegmentedPropertyTypeModifierCodeSequence /** Interface class for RTROIIdentificationCodeSequence (3006,0086) @@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -203,6 +211,18 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const { return EquivalentCodeSequence; } + /** get SegmentedPropertyTypeModifierCodeSequence (0062,0011) + * @return reference to sequence element + */ + DRTSegmentedPropertyTypeModifierCodeSequence &getSegmentedPropertyTypeModifierCodeSequence() + { return SegmentedPropertyTypeModifierCodeSequence; } + + /** get SegmentedPropertyTypeModifierCodeSequence (0062,0011) + * @return const reference to sequence element + */ + const DRTSegmentedPropertyTypeModifierCodeSequence &getSegmentedPropertyTypeModifierCodeSequence() const + { return SegmentedPropertyTypeModifierCodeSequence; } + // --- set DICOM attribute values --- /** set CodeMeaning (0008,0104) @@ -289,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,8 +361,12 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; + /// SegmentedPropertyTypeModifierCodeSequence (0062,0011) vr=SQ, vm=1, type=3 + DRTSegmentedPropertyTypeModifierCodeSequence SegmentedPropertyTypeModifierCodeSequence; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C DcmUniversalResourceIdentifierOrLocator URNCodeValue; diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h index c5cc0896..b801ced9 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtris.h b/dcmrt/include/dcmtk/dcmrt/seq/drtris.h index e02c5994..c89bc653 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtris.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtris.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedInstanceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h index c802d6de..192cc4bd 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedLateralSpreadingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h index b8e7da6d..df27a494 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h index f45f87e1..c1828e4a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeModulatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h index 9cf6e015..92026ba3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h index f0356b70..3eb715f6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h index 75b8e93e..1ad4adf5 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRequestedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h index 4f466b19..ee163ff2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferringPhysicianIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h index 165744df..eb52d056 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReasonForPerformedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h index d7264885..4b838399 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedPatientPhotoSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h index 193865cd..b3cf2279 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTROIPhysicalPropertiesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h index 7d241776..15205b12 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedPerformedProcedureStepSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h index 921b6149..53271deb 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedPatientSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h index ac4456ba..71be5a15 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedReferenceImageSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h index ffd2638e..f82e1735 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedReferenceImageSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h index 08e660af..713ea30b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h index d6bbcf57..32da6559 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedRangeModulatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h index e2c9b7f5..d6a79323 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTROIObservationsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -19,7 +19,6 @@ #include "dcmtk/ofstd/oflist.h" // for standard list class #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class -#include "dcmtk/dcmrt/seq/drtarics.h" // for AdditionalRTROIIdentificationCodeSequence #include "dcmtk/dcmrt/seq/drtrpps.h" // for ROIPhysicalPropertiesSequence #include "dcmtk/dcmrt/seq/drtrics.h" // for RTROIIdentificationCodeSequence #include "dcmtk/dcmrt/seq/drtrrs.h" // for RTRelatedROISequence @@ -161,18 +160,6 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence // --- get DICOM sequence attributes --- - /** get AdditionalRTROIIdentificationCodeSequence (3006,00b9) - * @return reference to sequence element - */ - DRTAdditionalRTROIIdentificationCodeSequence &getAdditionalRTROIIdentificationCodeSequence() - { return AdditionalRTROIIdentificationCodeSequence; } - - /** get AdditionalRTROIIdentificationCodeSequence (3006,00b9) - * @return const reference to sequence element - */ - const DRTAdditionalRTROIIdentificationCodeSequence &getAdditionalRTROIIdentificationCodeSequence() const - { return AdditionalRTROIIdentificationCodeSequence; } - /** get ROIPhysicalPropertiesSequence (3006,00b0) * @return reference to sequence element */ @@ -289,8 +276,6 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; - /// AdditionalRTROIIdentificationCodeSequence (3006,00b9) vr=SQ, vm=1, type=3 - DRTAdditionalRTROIIdentificationCodeSequence AdditionalRTROIIdentificationCodeSequence; /// MaterialID (300a,00e1) vr=SH, vm=1, type=3 DcmShortString MaterialID; /// ObservationNumber (3006,0082) vr=IS, vm=1, type=1 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h index 2b348453..e7424fb7 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReasonForRequestedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h index d37493c1..6e7e9721 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRelatedRTROIObservationsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h index 471d72fd..b769374f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTRelatedROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h index bb9f495f..e4f6d174 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedRangeShifterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h index 0b9a7ec7..ce710ab5 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedRTPlanSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h index 73272e94..58331932 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedRTPlanSequenceInRTGeneralPlanModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h index 7e5706f0..a84d994f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h index db4fe1fd..b18050e5 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedRTPlanSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h index 4ee81149..d176d7c2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRequestingServiceCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h index a0e546ea..413d2178 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedSeriesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h index b6aabfd9..1826f4a6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTReferencedSeriesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h index e7f5d447..4c268a09 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeShifterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h index 7476aafe..41704e35 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeShifterSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h index 51d0ec05..77076d2a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h index cc41a4fd..d735232e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedSetupImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h index 6339f1e3..748776d3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedSnoutSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h index 31275ea4..c6a9d95e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedSOPSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h index 40fd3035..7ec47af4 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedSpatialRegistrationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h index c8bb63cb..55b2de37 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedStudySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h index 4bff060f..16a5406f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedStructureSetSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h index 524f0aad..2012fb8e 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRTReferencedStudySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h index 0697321b..2636e43a 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedTreatmentRecordSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h index 2a18110d..2c758102 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h index 61a716fa..995290d4 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTReferencedVerificationImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h index 1d1e6ff2..bbb677a0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRecordedWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h index b9f90371..e83721a0 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTRealWorldValueMappingSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -92,6 +92,20 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence // --- get DICOM attribute values --- + /** get DoubleFloatRealWorldValueFirstValueMapped (0040,9214) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDoubleFloatRealWorldValueFirstValueMapped(Float64 &value, const unsigned long pos = 0) const; + + /** get DoubleFloatRealWorldValueLastValueMapped (0040,9213) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDoubleFloatRealWorldValueLastValueMapped(Float64 &value, const unsigned long pos = 0) const; + /** get LUTExplanation (0028,3003) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -169,6 +183,20 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence // --- set DICOM attribute values --- + /** set DoubleFloatRealWorldValueFirstValueMapped (0040,9214) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, const unsigned long pos = 0); + + /** set DoubleFloatRealWorldValueLastValueMapped (0040,9213) + * @param value value to be set (should be valid for this VR) + * @param pos index of the value to be set (0..vm-1), vm=1 + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, const unsigned long pos = 0); + /** set LUTExplanation (0028,3003) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled @@ -223,6 +251,10 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence /// internal flag used to mark the empty default item /*const*/ OFBool EmptyDefaultItem; + /// DoubleFloatRealWorldValueFirstValueMapped (0040,9214) vr=FD, vm=1, type=1C + DcmFloatingPointDouble DoubleFloatRealWorldValueFirstValueMapped; + /// DoubleFloatRealWorldValueLastValueMapped (0040,9213) vr=FD, vm=1, type=1C + DcmFloatingPointDouble DoubleFloatRealWorldValueLastValueMapped; /// LUTExplanation (0028,3003) vr=LO, vm=1, type=1 DcmLongString LUTExplanation; /// LUTLabel (0040,9210) vr=SH, vm=1, type=1 @@ -231,13 +263,13 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence DRTMeasurementUnitsCodeSequence MeasurementUnitsCodeSequence; /// QuantityDefinitionSequence (0040,9220) vr=SQ, vm=1, type=3 DRTQuantityDefinitionSequence QuantityDefinitionSequence; - /// RealWorldValueFirstValueMapped (0040,9216) vr=US/SS, vm=1, type=1 + /// RealWorldValueFirstValueMapped (0040,9216) vr=US/SS, vm=1, type=1C DcmUnsignedShort RealWorldValueFirstValueMapped; /// RealWorldValueIntercept (0040,9224) vr=FD, vm=1, type=1C DcmFloatingPointDouble RealWorldValueIntercept; /// RealWorldValueLUTData (0040,9212) vr=FD, vm=1-n, type=1C DcmFloatingPointDouble RealWorldValueLUTData; - /// RealWorldValueLastValueMapped (0040,9211) vr=US/SS, vm=1, type=1 + /// RealWorldValueLastValueMapped (0040,9211) vr=US/SS, vm=1, type=1C DcmUnsignedShort RealWorldValueLastValueMapped; /// RealWorldValueSlope (0040,9225) vr=FD, vm=1, type=1C DcmFloatingPointDouble RealWorldValueSlope; diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h b/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h index 70c5a4cd..1e3590d3 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTStudiesContainingOtherReferencedInstancesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtscs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtscs.h new file mode 100644 index 00000000..8bc93594 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtscs.h @@ -0,0 +1,543 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTStrainCodeSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTSCS_H +#define DRTSCS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtecs.h" // for EquivalentCodeSequence + + +/** Interface class for StrainCodeSequence (0010,0219) + */ +class DCMTK_DCMRT_EXPORT DRTStrainCodeSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get CodeMeaning (0008,0104) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodeMeaning(OFString &value, const signed long pos = 0) const; + + /** get CodeValue (0008,0100) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodeValue(OFString &value, const signed long pos = 0) const; + + /** get CodingSchemeDesignator (0008,0102) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodingSchemeDesignator(OFString &value, const signed long pos = 0) const; + + /** get CodingSchemeVersion (0008,0103) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionCreatorUID (0008,010d) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionFlag (0008,010b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupLocalVersion (0008,0107) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupVersion (0008,0106) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextIdentifier (0008,010f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const; + + /** get ContextUID (0008,0117) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextUID(OFString &value, const signed long pos = 0) const; + + /** get LongCodeValue (0008,0119) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const; + + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceUID (0008,0118) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const; + + /** get URNCodeValue (0008,0120) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getURNCodeValue(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get EquivalentCodeSequence (0008,0121) + * @return reference to sequence element + */ + DRTEquivalentCodeSequence &getEquivalentCodeSequence() + { return EquivalentCodeSequence; } + + /** get EquivalentCodeSequence (0008,0121) + * @return const reference to sequence element + */ + const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const + { return EquivalentCodeSequence; } + + // --- set DICOM attribute values --- + + /** set CodeMeaning (0008,0104) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodeMeaning(const OFString &value, const OFBool check = OFTrue); + + /** set CodeValue (0008,0100) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodeValue(const OFString &value, const OFBool check = OFTrue); + + /** set CodingSchemeDesignator (0008,0102) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodingSchemeDesignator(const OFString &value, const OFBool check = OFTrue); + + /** set CodingSchemeVersion (0008,0103) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionCreatorUID (0008,010d) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionFlag (0008,010b) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupLocalVersion (0008,0107) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupVersion (0008,0106) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextIdentifier (0008,010f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue); + + /** set ContextUID (0008,0117) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue); + + /** set LongCodeValue (0008,0119) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceUID (0008,0118) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue); + + /** set URNCodeValue (0008,0120) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UR) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setURNCodeValue(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1 + DcmLongString CodeMeaning; + /// CodeValue (0008,0100) vr=SH, vm=1, type=1C + DcmShortString CodeValue; + /// CodingSchemeDesignator (0008,0102) vr=SH, vm=1, type=1C + DcmShortString CodingSchemeDesignator; + /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C + DcmShortString CodingSchemeVersion; + /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C + DcmUniqueIdentifier ContextGroupExtensionCreatorUID; + /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3 + DcmCodeString ContextGroupExtensionFlag; + /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupLocalVersion; + /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupVersion; + /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3 + DcmCodeString ContextIdentifier; + /// ContextUID (0008,0117) vr=UI, vm=1, type=3 + DcmUniqueIdentifier ContextUID; + /// EquivalentCodeSequence (0008,0121) vr=SQ, vm=1, type=3 + DRTEquivalentCodeSequence EquivalentCodeSequence; + /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C + DcmUnlimitedCharacters LongCodeValue; + /// MappingResource (0008,0105) vr=CS, vm=1, type=1C + DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; + /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 + DcmUniqueIdentifier MappingResourceUID; + /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C + DcmUniversalResourceIdentifierOrLocator URNCodeValue; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTStrainCodeSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTStrainCodeSequence(const DRTStrainCodeSequence ©); + + /** destructor + */ + virtual ~DRTStrainCodeSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTStrainCodeSequence &operator=(const DRTStrainCodeSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h index 52646b8f..55e5970b 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSeriesDescriptionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h index 06db62c6..9a1aa056 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSetupDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h index a66db0df..30e1f0ef 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTShieldingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsins.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsins.h new file mode 100644 index 00000000..4665d523 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsins.h @@ -0,0 +1,335 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTSourceInstanceSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTSINS_H +#define DRTSINS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtporcs.h" // for PurposeOfReferenceCodeSequence + + +/** Interface class for SourceInstanceSequence (0042,0013) + */ +class DCMTK_DCMRT_EXPORT DRTSourceInstanceSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get ReferencedSOPClassUID (0008,1150) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getReferencedSOPClassUID(OFString &value, const signed long pos = 0) const; + + /** get ReferencedSOPInstanceUID (0008,1155) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getReferencedSOPInstanceUID(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get PurposeOfReferenceCodeSequence (0040,a170) + * @return reference to sequence element + */ + DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() + { return PurposeOfReferenceCodeSequence; } + + /** get PurposeOfReferenceCodeSequence (0040,a170) + * @return const reference to sequence element + */ + const DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() const + { return PurposeOfReferenceCodeSequence; } + + // --- set DICOM attribute values --- + + /** set ReferencedSOPClassUID (0008,1150) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setReferencedSOPClassUID(const OFString &value, const OFBool check = OFTrue); + + /** set ReferencedSOPInstanceUID (0008,1155) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setReferencedSOPInstanceUID(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// PurposeOfReferenceCodeSequence (0040,a170) vr=SQ, vm=1, type=3 + DRTPurposeOfReferenceCodeSequence PurposeOfReferenceCodeSequence; + /// ReferencedSOPClassUID (0008,1150) vr=UI, vm=1, type=1 + DcmUniqueIdentifier ReferencedSOPClassUID; + /// ReferencedSOPInstanceUID (0008,1155) vr=UI, vm=1, type=1 + DcmUniqueIdentifier ReferencedSOPInstanceUID; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTSourceInstanceSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTSourceInstanceSequence(const DRTSourceInstanceSequence ©); + + /** destructor + */ + virtual ~DRTSourceInstanceSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTSourceInstanceSequence &operator=(const DRTSourceInstanceSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h index 967bda6e..56759d56 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSourceImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h index db03a312..65cef988 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSnoutSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h index 6ec77c83..1902411f 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSegmentedPropertyCategoryCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h index 075109f7..e74a4db5 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTScheduledProtocolCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -176,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence */ OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + /** get MappingResourceUID (0008,0118) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -302,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence */ OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + /** set MappingResourceUID (0008,0118) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled @@ -347,6 +361,8 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence DcmUnlimitedCharacters LongCodeValue; /// MappingResource (0008,0105) vr=CS, vm=1, type=1C DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 DcmUniqueIdentifier MappingResourceUID; /// ProtocolContextSequence (0040,0440) vr=SQ, vm=1, type=3 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h new file mode 100644 index 00000000..fe8b8d41 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h @@ -0,0 +1,335 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTSourcePatientGroupIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTSPGIS_H +#define DRTSPGIS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtipiqs.h" // for IssuerOfPatientIDQualifiersSequence + + +/** Interface class for SourcePatientGroupIdentificationSequence (0010,0026) + */ +class DCMTK_DCMRT_EXPORT DRTSourcePatientGroupIdentificationSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get IssuerOfPatientID (0010,0021) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const; + + /** get PatientID (0010,0020) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getPatientID(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get IssuerOfPatientIDQualifiersSequence (0010,0024) + * @return reference to sequence element + */ + DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence() + { return IssuerOfPatientIDQualifiersSequence; } + + /** get IssuerOfPatientIDQualifiersSequence (0010,0024) + * @return const reference to sequence element + */ + const DRTIssuerOfPatientIDQualifiersSequence &getIssuerOfPatientIDQualifiersSequence() const + { return IssuerOfPatientIDQualifiersSequence; } + + // --- set DICOM attribute values --- + + /** set IssuerOfPatientID (0010,0021) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue); + + /** set PatientID (0010,0020) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setPatientID(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// IssuerOfPatientID (0010,0021) vr=LO, vm=1, type=3 + DcmLongString IssuerOfPatientID; + /// IssuerOfPatientIDQualifiersSequence (0010,0024) vr=SQ, vm=1, type=3 + DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence; + /// PatientID (0010,0020) vr=LO, vm=1, type=1 + DcmLongString PatientID; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTSourcePatientGroupIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTSourcePatientGroupIdentificationSequence(const DRTSourcePatientGroupIdentificationSequence ©); + + /** destructor + */ + virtual ~DRTSourcePatientGroupIdentificationSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTSourcePatientGroupIdentificationSequence &operator=(const DRTSourcePatientGroupIdentificationSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h new file mode 100644 index 00000000..520279d5 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h @@ -0,0 +1,543 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTSegmentedPropertyTypeModifierCodeSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTSPTCS_H +#define DRTSPTCS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtecs.h" // for EquivalentCodeSequence + + +/** Interface class for SegmentedPropertyTypeModifierCodeSequence (0062,0011) + */ +class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyTypeModifierCodeSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get CodeMeaning (0008,0104) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodeMeaning(OFString &value, const signed long pos = 0) const; + + /** get CodeValue (0008,0100) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodeValue(OFString &value, const signed long pos = 0) const; + + /** get CodingSchemeDesignator (0008,0102) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodingSchemeDesignator(OFString &value, const signed long pos = 0) const; + + /** get CodingSchemeVersion (0008,0103) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionCreatorUID (0008,010d) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionFlag (0008,010b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupLocalVersion (0008,0107) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupVersion (0008,0106) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextIdentifier (0008,010f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const; + + /** get ContextUID (0008,0117) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextUID(OFString &value, const signed long pos = 0) const; + + /** get LongCodeValue (0008,0119) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const; + + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceUID (0008,0118) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const; + + /** get URNCodeValue (0008,0120) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getURNCodeValue(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get EquivalentCodeSequence (0008,0121) + * @return reference to sequence element + */ + DRTEquivalentCodeSequence &getEquivalentCodeSequence() + { return EquivalentCodeSequence; } + + /** get EquivalentCodeSequence (0008,0121) + * @return const reference to sequence element + */ + const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const + { return EquivalentCodeSequence; } + + // --- set DICOM attribute values --- + + /** set CodeMeaning (0008,0104) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodeMeaning(const OFString &value, const OFBool check = OFTrue); + + /** set CodeValue (0008,0100) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodeValue(const OFString &value, const OFBool check = OFTrue); + + /** set CodingSchemeDesignator (0008,0102) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodingSchemeDesignator(const OFString &value, const OFBool check = OFTrue); + + /** set CodingSchemeVersion (0008,0103) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionCreatorUID (0008,010d) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionFlag (0008,010b) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupLocalVersion (0008,0107) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupVersion (0008,0106) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextIdentifier (0008,010f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue); + + /** set ContextUID (0008,0117) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue); + + /** set LongCodeValue (0008,0119) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceUID (0008,0118) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue); + + /** set URNCodeValue (0008,0120) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UR) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setURNCodeValue(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1 + DcmLongString CodeMeaning; + /// CodeValue (0008,0100) vr=SH, vm=1, type=1C + DcmShortString CodeValue; + /// CodingSchemeDesignator (0008,0102) vr=SH, vm=1, type=1C + DcmShortString CodingSchemeDesignator; + /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C + DcmShortString CodingSchemeVersion; + /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C + DcmUniqueIdentifier ContextGroupExtensionCreatorUID; + /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3 + DcmCodeString ContextGroupExtensionFlag; + /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupLocalVersion; + /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupVersion; + /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3 + DcmCodeString ContextIdentifier; + /// ContextUID (0008,0117) vr=UI, vm=1, type=3 + DcmUniqueIdentifier ContextUID; + /// EquivalentCodeSequence (0008,0121) vr=SQ, vm=1, type=3 + DRTEquivalentCodeSequence EquivalentCodeSequence; + /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C + DcmUnlimitedCharacters LongCodeValue; + /// MappingResource (0008,0105) vr=CS, vm=1, type=1C + DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; + /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 + DcmUniqueIdentifier MappingResourceUID; + /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C + DcmUniversalResourceIdentifierOrLocator URNCodeValue; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTSegmentedPropertyTypeModifierCodeSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTSegmentedPropertyTypeModifierCodeSequence(const DRTSegmentedPropertyTypeModifierCodeSequence ©); + + /** destructor + */ + virtual ~DRTSegmentedPropertyTypeModifierCodeSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTSegmentedPropertyTypeModifierCodeSequence &operator=(const DRTSegmentedPropertyTypeModifierCodeSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtss.h index 418ba831..a49ddb28 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtss.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtss.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTSourceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h new file mode 100644 index 00000000..70c78182 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h @@ -0,0 +1,543 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTStrainSourceRegistryCodeSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTSSRCS_H +#define DRTSSRCS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtecs.h" // for EquivalentCodeSequence + + +/** Interface class for StrainSourceRegistryCodeSequence (0010,0215) + */ +class DCMTK_DCMRT_EXPORT DRTStrainSourceRegistryCodeSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get CodeMeaning (0008,0104) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodeMeaning(OFString &value, const signed long pos = 0) const; + + /** get CodeValue (0008,0100) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodeValue(OFString &value, const signed long pos = 0) const; + + /** get CodingSchemeDesignator (0008,0102) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodingSchemeDesignator(OFString &value, const signed long pos = 0) const; + + /** get CodingSchemeVersion (0008,0103) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionCreatorUID (0008,010d) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupExtensionFlag (0008,010b) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupLocalVersion (0008,0107) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextGroupVersion (0008,0106) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const; + + /** get ContextIdentifier (0008,010f) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const; + + /** get ContextUID (0008,0117) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getContextUID(OFString &value, const signed long pos = 0) const; + + /** get LongCodeValue (0008,0119) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const; + + /** get MappingResource (0008,0105) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResource(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceName (0008,0122) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const; + + /** get MappingResourceUID (0008,0118) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const; + + /** get URNCodeValue (0008,0120) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getURNCodeValue(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get EquivalentCodeSequence (0008,0121) + * @return reference to sequence element + */ + DRTEquivalentCodeSequence &getEquivalentCodeSequence() + { return EquivalentCodeSequence; } + + /** get EquivalentCodeSequence (0008,0121) + * @return const reference to sequence element + */ + const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const + { return EquivalentCodeSequence; } + + // --- set DICOM attribute values --- + + /** set CodeMeaning (0008,0104) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodeMeaning(const OFString &value, const OFBool check = OFTrue); + + /** set CodeValue (0008,0100) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodeValue(const OFString &value, const OFBool check = OFTrue); + + /** set CodingSchemeDesignator (0008,0102) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodingSchemeDesignator(const OFString &value, const OFBool check = OFTrue); + + /** set CodingSchemeVersion (0008,0103) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (SH) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionCreatorUID (0008,010d) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupExtensionFlag (0008,010b) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupLocalVersion (0008,0107) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextGroupVersion (0008,0106) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (DT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue); + + /** set ContextIdentifier (0008,010f) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue); + + /** set ContextUID (0008,0117) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue); + + /** set LongCodeValue (0008,0119) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UC) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResource (0008,0105) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceName (0008,0122) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue); + + /** set MappingResourceUID (0008,0118) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UI) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue); + + /** set URNCodeValue (0008,0120) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UR) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setURNCodeValue(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1 + DcmLongString CodeMeaning; + /// CodeValue (0008,0100) vr=SH, vm=1, type=1C + DcmShortString CodeValue; + /// CodingSchemeDesignator (0008,0102) vr=SH, vm=1, type=1C + DcmShortString CodingSchemeDesignator; + /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C + DcmShortString CodingSchemeVersion; + /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C + DcmUniqueIdentifier ContextGroupExtensionCreatorUID; + /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3 + DcmCodeString ContextGroupExtensionFlag; + /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupLocalVersion; + /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C + DcmDateTime ContextGroupVersion; + /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3 + DcmCodeString ContextIdentifier; + /// ContextUID (0008,0117) vr=UI, vm=1, type=3 + DcmUniqueIdentifier ContextUID; + /// EquivalentCodeSequence (0008,0121) vr=SQ, vm=1, type=3 + DRTEquivalentCodeSequence EquivalentCodeSequence; + /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C + DcmUnlimitedCharacters LongCodeValue; + /// MappingResource (0008,0105) vr=CS, vm=1, type=1C + DcmCodeString MappingResource; + /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3 + DcmLongString MappingResourceName; + /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3 + DcmUniqueIdentifier MappingResourceUID; + /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C + DcmUniversalResourceIdentifierOrLocator URNCodeValue; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTStrainSourceRegistryCodeSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTStrainSourceRegistryCodeSequence(const DRTStrainSourceRegistryCodeSequence ©); + + /** destructor + */ + virtual ~DRTStrainSourceRegistryCodeSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTStrainSourceRegistryCodeSequence &operator=(const DRTStrainSourceRegistryCodeSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h index 5c878023..495bb273 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTStructureSetROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsss.h new file mode 100644 index 00000000..11ddef44 --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsss.h @@ -0,0 +1,335 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTStrainStockSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTSSS_H +#define DRTSSS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class +#include "dcmtk/dcmrt/seq/drtssrcs.h" // for StrainSourceRegistryCodeSequence + + +/** Interface class for StrainStockSequence (0010,0216) + */ +class DCMTK_DCMRT_EXPORT DRTStrainStockSequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get StrainSource (0010,0217) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getStrainSource(OFString &value, const signed long pos = 0) const; + + /** get StrainStockNumber (0010,0214) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getStrainStockNumber(OFString &value, const signed long pos = 0) const; + + // --- get DICOM sequence attributes --- + + /** get StrainSourceRegistryCodeSequence (0010,0215) + * @return reference to sequence element + */ + DRTStrainSourceRegistryCodeSequence &getStrainSourceRegistryCodeSequence() + { return StrainSourceRegistryCodeSequence; } + + /** get StrainSourceRegistryCodeSequence (0010,0215) + * @return const reference to sequence element + */ + const DRTStrainSourceRegistryCodeSequence &getStrainSourceRegistryCodeSequence() const + { return StrainSourceRegistryCodeSequence; } + + // --- set DICOM attribute values --- + + /** set StrainSource (0010,0217) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setStrainSource(const OFString &value, const OFBool check = OFTrue); + + /** set StrainStockNumber (0010,0214) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setStrainStockNumber(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// StrainSource (0010,0217) vr=LO, vm=1, type=1 + DcmLongString StrainSource; + /// StrainSourceRegistryCodeSequence (0010,0215) vr=SQ, vm=1, type=1 + DRTStrainSourceRegistryCodeSequence StrainSourceRegistryCodeSequence; + /// StrainStockNumber (0010,0214) vr=LO, vm=1, type=1 + DcmLongString StrainStockNumber; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTStrainStockSequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTStrainStockSequence(const DRTStrainStockSequence ©); + + /** destructor + */ + virtual ~DRTStrainStockSequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTStrainStockSequence &operator=(const DRTStrainStockSequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h b/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h index d226e577..1d4e5ada 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h b/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h index f05b97a5..ce4ef251 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h b/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h index e0214802..0f025c25 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentSummaryCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h b/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h index a76b0076..375d45ae 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentSessionIonBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -21,6 +21,7 @@ #include "dcmtk/dcmrt/drttypes.h" // module-specific helper class #include "dcmtk/dcmrt/seq/drtas7.h" // for ApplicatorSequence #include "dcmtk/dcmrt/seq/drtbldls.h" // for BeamLimitingDeviceLeafPairsSequence +#include "dcmtk/dcmrt/seq/drtdddps.h" // for DeliveredDepthDoseParametersSequence #include "dcmtk/dcmrt/seq/drtgas.h" // for GeneralAccessorySequence #include "dcmtk/dcmrt/seq/drticpds.h" // for IonControlPointDeliverySequence #include "dcmtk/dcmrt/seq/drtrbls.h" // for RecordedBlockSequence @@ -182,6 +183,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence */ OFCondition getDeliveredTreatmentTime(Float64 &value, const unsigned long pos = 0) const; + /** get FixationEye (300a,0150) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getFixationEye(OFString &value, const signed long pos = 0) const; + /** get FixationLightAzimuthalAngle (300a,0356) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1) @@ -196,6 +204,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence */ OFCondition getFixationLightPolarAngle(Float32 &value, const unsigned long pos = 0) const; + /** get ModulatedScanModeType (300a,0309) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getModulatedScanModeType(OFString &value, const signed long pos = 0) const; + /** get NumberOfBlocks (300a,00f0) * @param value reference to variable in which the value should be stored * @param pos index of the value to get (0..vm-1), -1 for all components @@ -516,6 +531,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence const DRTBeamLimitingDeviceLeafPairsSequence &getBeamLimitingDeviceLeafPairsSequence() const { return BeamLimitingDeviceLeafPairsSequence; } + /** get DeliveredDepthDoseParametersSequence (300a,0506) + * @return reference to sequence element + */ + DRTDeliveredDepthDoseParametersSequence &getDeliveredDepthDoseParametersSequence() + { return DeliveredDepthDoseParametersSequence; } + + /** get DeliveredDepthDoseParametersSequence (300a,0506) + * @return const reference to sequence element + */ + const DRTDeliveredDepthDoseParametersSequence &getDeliveredDepthDoseParametersSequence() const + { return DeliveredDepthDoseParametersSequence; } + /** get GeneralAccessorySequence (300a,0420) * @return reference to sequence element */ @@ -723,6 +750,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence */ OFCondition setDeliveredTreatmentTime(const OFString &value, const OFBool check = OFTrue); + /** set FixationEye (300a,0150) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setFixationEye(const OFString &value, const OFBool check = OFTrue); + /** set FixationLightAzimuthalAngle (300a,0356) * @param value value to be set (should be valid for this VR) * @param pos index of the value to be set (0..vm-1), vm=1 @@ -737,6 +771,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence */ OFCondition setFixationLightPolarAngle(const Float32 value, const unsigned long pos = 0); + /** set ModulatedScanModeType (300a,0309) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (CS) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setModulatedScanModeType(const OFString &value, const OFBool check = OFTrue); + /** set NumberOfBlocks (300a,00f0) * @param value value to be set (single value only) or "" for no value * @param check check 'value' for conformance with VR (IS) and VM (1) if enabled @@ -936,12 +977,16 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence DcmCodeString BeamType; /// CurrentFractionNumber (3008,0022) vr=IS, vm=1, type=2 DcmIntegerString CurrentFractionNumber; + /// DeliveredDepthDoseParametersSequence (300a,0506) vr=SQ, vm=1, type=3 + DRTDeliveredDepthDoseParametersSequence DeliveredDepthDoseParametersSequence; /// DeliveredPrimaryMeterset (3008,0036) vr=DS, vm=1, type=3 DcmDecimalString DeliveredPrimaryMeterset; /// DeliveredSecondaryMeterset (3008,0037) vr=DS, vm=1, type=3 DcmDecimalString DeliveredSecondaryMeterset; /// DeliveredTreatmentTime (3008,003b) vr=DS, vm=1, type=3 DcmDecimalString DeliveredTreatmentTime; + /// FixationEye (300a,0150) vr=CS, vm=1, type=3 + DcmCodeString FixationEye; /// FixationLightAzimuthalAngle (300a,0356) vr=FL, vm=1, type=3 DcmFloatingPointSingle FixationLightAzimuthalAngle; /// FixationLightPolarAngle (300a,0358) vr=FL, vm=1, type=3 @@ -950,6 +995,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence DRTGeneralAccessorySequence GeneralAccessorySequence; /// IonControlPointDeliverySequence (3008,0041) vr=SQ, vm=1, type=1 DRTIonControlPointDeliverySequence IonControlPointDeliverySequence; + /// ModulatedScanModeType (300a,0309) vr=CS, vm=1, type=1C + DcmCodeString ModulatedScanModeType; /// NumberOfBlocks (300a,00f0) vr=IS, vm=1, type=1 DcmIntegerString NumberOfBlocks; /// NumberOfBoli (300a,00ed) vr=IS, vm=1, type=1 diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h b/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h index 6bab8b34..756dd180 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTTreatmentSummaryMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttts.h b/dcmrt/include/dcmtk/dcmrt/seq/drttts.h index c3073b3f..d08bf5ba 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drttts.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drttts.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTToleranceTableSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtudis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtudis.h new file mode 100644 index 00000000..938702eb --- /dev/null +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtudis.h @@ -0,0 +1,318 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Header file for class DRTUDISequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#ifndef DRTUDIS_H +#define DRTUDIS_H + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/ofstd/oflist.h" // for standard list class +#include "dcmtk/dcmrt/drttypes.h" // module-specific helper class + + +/** Interface class for UDISequence (0018,100a) + */ +class DCMTK_DCMRT_EXPORT DRTUDISequence + : protected DRTTypes +{ + + public: + + /** Item class + */ + class DCMTK_DCMRT_EXPORT Item + : protected DRTTypes + { + + public: + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultItem flag used to mark the empty default item + */ + Item(const OFBool emptyDefaultItem = OFFalse); + + /** copy constructor + * @param copy item object to be copied + */ + Item(const Item ©); + + /** destructor + */ + virtual ~Item(); + + /** assigment operator + * @param copy item object to be copied + */ + Item &operator=(const Item ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if item is empty + * @return OFTrue if item is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if item is valid, i.e.\ not the empty default item + * @return OFTrue if item is valid, OFFalse otherwise + */ + OFBool isValid() const; + + // --- input/output methods --- + + /** read elements from sequence item + * @param item reference to DICOM sequence item from which the elements should be read + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &item); + + /** write elements to sequence item + * @param item reference to DICOM sequence item to which the elements should be written + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &item); + + // --- get DICOM attribute values --- + + /** get DeviceDescription (0050,0020) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getDeviceDescription(OFString &value, const signed long pos = 0) const; + + /** get UniqueDeviceIdentifier (0018,1009) + * @param value reference to variable in which the value should be stored + * @param pos index of the value to get (0..vm-1), -1 for all components + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getUniqueDeviceIdentifier(OFString &value, const signed long pos = 0) const; + + // --- set DICOM attribute values --- + + /** set DeviceDescription (0050,0020) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (LO) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setDeviceDescription(const OFString &value, const OFBool check = OFTrue); + + /** set UniqueDeviceIdentifier (0018,1009) + * @param value value to be set (single value only) or "" for no value + * @param check check 'value' for conformance with VR (UT) and VM (1) if enabled + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition setUniqueDeviceIdentifier(const OFString &value, const OFBool check = OFTrue); + + private: + + /// internal flag used to mark the empty default item + /*const*/ OFBool EmptyDefaultItem; + + /// DeviceDescription (0050,0020) vr=LO, vm=1, type=3 + DcmLongString DeviceDescription; + /// UniqueDeviceIdentifier (0018,1009) vr=UT, vm=1, type=1 + DcmUnlimitedText UniqueDeviceIdentifier; + + }; + + // --- constructors, destructor and operators --- + + /** (default) constructor + * @param emptyDefaultSequence internal flag used to mark the empty default sequence + */ + DRTUDISequence(const OFBool emptyDefaultSequence = OFFalse); + + /** copy constructor + * @param copy sequence object to be copied + */ + DRTUDISequence(const DRTUDISequence ©); + + /** destructor + */ + virtual ~DRTUDISequence(); + + /** assigment operator + * @param copy sequence object to be copied + */ + DRTUDISequence &operator=(const DRTUDISequence ©); + + // --- general methods --- + + /** clear all internal member variables + */ + void clear(); + + /** check if sequence is empty + * @return OFTrue if sequence is empty, OFFalse otherwise + */ + OFBool isEmpty(); + + /** check if sequence is valid, i.e.\ not the empty default sequence + * @return OFTrue if sequence is valid, OFFalse otherwise + */ + OFBool isValid() const; + + /** get number of items in the sequence + * @return number of items + */ + unsigned long getNumberOfItems() const; + + /** goto first item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoFirstItem(); + + /** goto next item in the sequence + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoNextItem(); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num); + + /** get current item in the sequence + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getCurrentItem(Item *&item) const; + + /** get current item in the sequence + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getCurrentItem(); + + /** get current item in the sequence + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getCurrentItem() const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @param item reference to item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItem(const unsigned long num, Item *&item); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &getItem(const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &getItem(const unsigned long num) const; + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return reference to specified item if successful, empty default item otherwise + */ + Item &operator[](const unsigned long num); + + /** get particular item in the sequence + * @param num number of the item to be retrieved (0..num-1) + * @return const reference to specified item if successful, empty default item otherwise + */ + const Item &operator[](const unsigned long num) const; + + /** add new item to the end of this sequence + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition addItem(Item *&item); + + /** insert new item into the sequence + * @param pos position where the new item is to be inserted (0..num) + * @param item reference to new item pointer (result variable) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition insertItem(const unsigned long pos, Item *&item); + + /** remove particular item from the sequence + * @param pos position of the item to be removed (0..num-1) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition removeItem(const unsigned long pos); + + // --- input/output methods --- + + /** read sequence of items from dataset + * @param dataset reference to DICOM dataset from which the sequence should be read + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "1C", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + /** write sequence of items to dataset + * @param dataset reference to DICOM dataset to which the sequence should be written + * @param card cardinality (valid range for number of items) + * @param type value type (valid value: "1", "2" or something else which is not checked) + * @param moduleName optional module/sequence name to be printed (default: "RT object" if NULL) + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName = NULL); + + protected: + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListIterator(Item *) &iterator); + + /** goto particular item in the sequence + * @param num number of the item to be selected (0..num-1) + * @param iterator list iterator storing the position of the item + * @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition gotoItem(const unsigned long num, + OFListConstIterator(Item *) &iterator) const; + + private: + + /// internal flag used to mark the empty default sequence + /*const*/ OFBool EmptyDefaultSequence; + + /// list of items in this sequence + OFList SequenceOfItems; + /// currently selected item + OFListIterator(Item *) CurrentItem; + /// empty default item + Item EmptyItem; + +}; + + +#endif diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h index c2374d6b..3c46a9d1 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTVOILUTSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h index 62fcd562..c85bb893 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTWedgePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h index e1c2a36e..ce1e5573 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTWADORetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h index 964ba628..0fbc16c2 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTWADORSRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtws.h b/dcmrt/include/dcmtk/dcmrt/seq/drtws.h index 215e57c6..08a3dcf6 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtws.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtws.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h index 162768db..0a6e554d 100644 --- a/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h +++ b/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Header file for class DRTXDSRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/CMakeLists.txt b/dcmrt/libsrc/CMakeLists.txt index c0447c38..ab283564 100644 --- a/dcmrt/libsrc/CMakeLists.txt +++ b/dcmrt/libsrc/CMakeLists.txt @@ -1,4 +1,4 @@ # create library from source files -DCMTK_ADD_LIBRARY(dcmrt drtdose drtimage drtplan drtstrct drttreat drtionpl drtiontr drmdose drmimage drmplan drmstrct drttypes drtaadcs drtadcs drtads drtafs drtags drtajcs drtarics drtas1 drtas5 drtas6 drtas7 drtass drtbads drtbas drtbcps drtbl2 drtbl5 drtbldls drtbldps drtblds1 drtblds5 drtblds6 drtbldts drtbrcss drtbrdrs drtbrs drtbs drtbss drtbvcps drtcbars drtccs drtcctus drtcdrs drtces drtchs drtcims drtcis drtcncs drtcos drtcpas drtcpis drtcps drtcsas drtcs drtcshs drtcsis drtcss drtdcs drtdias drtdimcs drtdimrs drtdirs drtdrs drtds drtdspcs drtdss drtdvhs drtdvrrs drteas drtecs drtes drtfds drtfes drtfgs drtfgss drtfms drtfsss drtgas drthsdrs drtiais drtians drtiblds drtibls drtibs drticpds drticps drtics drtiis drtipiqs drtircs drtiseis drtitts drtiwps drtiws drtlsds6 drtlsds7 drtlsds drtmacds drtmas drtmdrs drtmls drtmps drtmss drtmucs drtoas drtois drtopis drtos drtpbcs drtpcs drtpcxs drtpdecs drtpfms drtpics drtporcs drtporis drtppcs drtprsis drtpscs drtpsics drtpss drtpsss drtpvis drtqds drtras drtrbas2 drtrbas8 drtrbls drtrbos1 drtrbos6 drtrbos7 drtrbs2 drtrbs4 drtrbs8 drtrcdrs drtrcos drtrcps drtrcs drtrdros drtrdrs1 drtrdrs6 drtrdrs8 drtrds drtrecs drtrfgs drtrfors drtrics drtrims drtris drtrlsds drtrmdrs drtrms drtrmss6 drtrmss7 drtrpcs drtrpis drtrppcs drtrpphs drtrpps drtrppss drtrps drtrris1 drtrris6 drtrris9 drtrrms drtrros drtrrpcs drtrrros drtrrs drtrrshs drtrrtps3 drtrrtps4 drtrrtps5 drtrrtps drtrscs drtrsers drtrses drtrshs6 drtrshs7 drtrshs drtrsis drtrsns drtrsos drtrsrs drtrss drtrsss drtrsts drtrtrs2 drtrtrs4 drtrvis drtwrsrs drtrws drtrwvms drtscris drtsdcs drtsds drtshds drtsis drtsns drtspccs drtspcs drtss drtssrs drttms0 drttms9 drttscds drttsibs drttsmds drttts drtvls drtwps drtwrs drtws drtxrs) +DCMTK_ADD_LIBRARY(dcmrt drtdose drtimage drtplan drtstrct drttreat drtionpl drtiontr drmdose drmimage drmplan drmstrct drttypes drtaadcs drtadcs drtads drtafs drtags drtajcs drtas1 drtas5 drtas6 drtas7 drtass drtbads drtbas drtbcps drtbl2 drtbl5 drtbldls drtbldps drtblds1 drtblds5 drtblds6 drtbldts drtbrcss drtbrdrs drtbrs drtbs drtbss drtbvcps drtcbars drtccs drtcctus drtcdrs drtces drtcgis drtchs drtcims drtcis drtcncs drtcos drtcpas drtcpis drtcps drtcsas drtcs drtcshs drtcsis drtcss drtdcs drtdddps drtddps drtdias drtdimcs drtdimrs drtdirs drtdrs drtds drtdspcs drtdss drtdvhs drtdvrrs drteas drtecs drtes drtfds drtfes drtfgs drtfgss drtfms drtfsss drtgas drtgpis drthsdrs drtiais drtians drtiblds drtibls drtibs drticpds drticps drtics drtiis drtipiqs drtircs drtiseis drtitts drtiwps drtiws drtlsds6 drtlsds7 drtlsds drtmacds drtmas drtmdrs drtmls drtmps drtmris drtmss drtmucs drtoas drtois drtopis drtos drtpbcs drtpcs drtpcxs drtpdecs drtpdeds drtpfms drtpics drtporcs drtporis drtppcs drtprsis drtpscs drtpsics drtpss drtpsss drtpvis drtqds drtras drtrbas2 drtrbas8 drtrbls drtrbos1 drtrbos6 drtrbos7 drtrbs2 drtrbs4 drtrbs8 drtrcdrs drtrcos drtrcps drtrcs drtrdros drtrdrs1 drtrdrs6 drtrdrs8 drtrds drtrecs drtrfgs drtrfors drtrics drtrims drtris drtrlsds drtrmdrs drtrms drtrmss6 drtrmss7 drtrpcs drtrpis drtrppcs drtrpphs drtrpps drtrppss drtrps drtrris1 drtrris6 drtrris9 drtrrms drtrros drtrrpcs drtrrros drtrrs drtrrshs drtrrtps3 drtrrtps4 drtrrtps5 drtrrtps drtrscs drtrsers drtrses drtrshs6 drtrshs7 drtrshs drtrsis drtrsns drtrsos drtrsrs drtrss drtrsss drtrsts drtrtrs2 drtrtrs4 drtrvis drtwrsrs drtrws drtrwvms drtscris drtscs drtsdcs drtsds drtshds drtsins drtsis drtsns drtspccs drtspcs drtspgis drtsptcs drtss drtssrcs drtssrs drtsss drttms0 drttms9 drttscds drttsibs drttsmds drttts drtudis drtvls drtwps drtwrs drtws drtxrs) DCMTK_TARGET_LINK_MODULES(dcmrt ofstd oflog dcmdata dcmimgle) diff --git a/dcmrt/libsrc/Makefile.dep b/dcmrt/libsrc/Makefile.dep index e85cb721..ccb5d231 100644 --- a/dcmrt/libsrc/Makefile.dep +++ b/dcmrt/libsrc/Makefile.dep @@ -119,7 +119,8 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ @@ -129,16 +130,17 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -152,17 +154,17 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ ../include/dcmtk/dcmrt/seq/drtrdros.h \ ../include/dcmtk/dcmrt/seq/drtrwvms.h \ ../include/dcmtk/dcmrt/seq/drtqds.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../include/dcmtk/dcmrt/seq/drtrsts.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -184,9 +186,13 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtssrs.h \ ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h \ ../../ofstd/include/dcmtk/ofstd/ofbmanip.h drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/drmimage.h ../include/dcmtk/dcmrt/drtimage.h \ @@ -310,6 +316,7 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h \ ../include/dcmtk/dcmrt/seq/drtcbars.h \ ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \ ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \ @@ -324,15 +331,16 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtblds5.h \ ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \ - ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtfes.h ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h \ ../include/dcmtk/dcmrt/seq/drtmacds.h \ ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ @@ -348,7 +356,9 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtporis.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ ../include/dcmtk/dcmrt/seq/drtrwvms.h \ ../include/dcmtk/dcmrt/seq/drtqds.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ @@ -369,8 +379,12 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtscris.h \ - ../include/dcmtk/dcmrt/seq/drtvls.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/seq/drtvls.h \ ../../dcmimgle/include/dcmtk/dcmimgle/dcmimage.h \ ../../dcmimgle/include/dcmtk/dcmimgle/dimoimg.h \ ../../dcmimgle/include/dcmtk/dcmimgle/diimage.h \ @@ -525,27 +539,30 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ ../include/dcmtk/dcmrt/seq/drtbvcps.h \ ../include/dcmtk/dcmrt/seq/drtrbas8.h \ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ @@ -561,8 +578,11 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtporis.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -572,18 +592,22 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtscris.h \ ../include/dcmtk/dcmrt/seq/drttts.h \ ../include/dcmtk/dcmrt/seq/drtbldts.h \ - ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drmsrch.h + ../include/dcmtk/dcmrt/seq/drttms9.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drmsrch.h drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/drmstrct.h ../include/dcmtk/dcmrt/drtstrct.h \ ../include/dcmtk/dcmrt/drttypes.h \ @@ -705,23 +729,25 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drteas.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -735,19 +761,23 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h ../include/dcmtk/dcmrt/seq/drtrros.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtrros.h \ ../include/dcmtk/dcmrt/seq/drtrpps.h \ ../include/dcmtk/dcmrt/seq/drtrecs.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ ../include/dcmtk/dcmrt/seq/drtrrros.h \ ../include/dcmtk/dcmrt/seq/drtspccs.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../include/dcmtk/dcmrt/seq/drtrsts.h \ ../include/dcmtk/dcmrt/seq/drtrses.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -756,15 +786,20 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrps.h \ ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \ - ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ + ../include/dcmtk/dcmrt/seq/drtras.h \ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ - ../include/dcmtk/dcmrt/seq/drtssrs.h ../include/dcmtk/dcmrt/seq/drtdcs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drmsrch.h + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtssrs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drmsrch.h drtaadcs.o: drtaadcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ @@ -1459,123 +1494,6 @@ drtajcs.o: drtajcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtarics.o: drtarics.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ - ../../ofstd/include/dcmtk/ofstd/oftypes.h \ - ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ - ../../ofstd/include/dcmtk/ofstd/ofcast.h \ - ../../ofstd/include/dcmtk/ofstd/ofexport.h \ - ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ - ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../include/dcmtk/dcmrt/drttypes.h \ - ../../ofstd/include/dcmtk/ofstd/ofcond.h \ - ../../ofstd/include/dcmtk/ofstd/ofstring.h \ - ../../ofstd/include/dcmtk/ofstd/ofvector.h \ - ../../oflog/include/dcmtk/oflog/oflog.h \ - ../../oflog/include/dcmtk/oflog/logger.h \ - ../../oflog/include/dcmtk/oflog/config.h \ - ../../oflog/include/dcmtk/oflog/config/defines.h \ - ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ - ../../oflog/include/dcmtk/oflog/loglevel.h \ - ../../oflog/include/dcmtk/oflog/tstring.h \ - ../../oflog/include/dcmtk/oflog/tchar.h \ - ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ - ../../oflog/include/dcmtk/oflog/appender.h \ - ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ - ../../oflog/include/dcmtk/oflog/layout.h \ - ../../oflog/include/dcmtk/oflog/streams.h \ - ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ - ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ - ../../oflog/include/dcmtk/oflog/spi/filter.h \ - ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ - ../../oflog/include/dcmtk/oflog/spi/logfact.h \ - ../../oflog/include/dcmtk/oflog/logmacro.h \ - ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ - ../../oflog/include/dcmtk/oflog/tracelog.h \ - ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ - ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ - ../../ofstd/include/dcmtk/ofstd/ofthread.h \ - ../../ofstd/include/dcmtk/ofstd/offile.h \ - ../../ofstd/include/dcmtk/ofstd/ofstd.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/oflimits.h \ - ../../config/include/dcmtk/config/arith.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ - ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ - ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ - ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ - ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ - ../../ofstd/include/dcmtk/ofstd/ofmap.h \ - ../../ofstd/include/dcmtk/ofstd/ofutil.h \ - ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ - ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h drtas1.o: drtas1.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtas1.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ @@ -4709,8 +4627,8 @@ drtces.o: drtces.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h -drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtchs.h \ +drtcgis.o: drtcgis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -4823,12 +4741,9 @@ drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbcps.h \ - ../include/dcmtk/dcmrt/seq/drtbrdrs.h \ - ../include/dcmtk/dcmrt/seq/drtcshs.h -drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtchs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -4942,12 +4857,11 @@ drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtbcps.h \ + ../include/dcmtk/dcmrt/seq/drtbrdrs.h \ + ../include/dcmtk/dcmrt/seq/drtcshs.h +drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5060,9 +4974,13 @@ drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5175,10 +5093,9 @@ drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcos.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5291,9 +5208,10 @@ drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcpas.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcos.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5407,8 +5325,8 @@ drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h \ +drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcpas.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5521,11 +5439,9 @@ drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h -drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5639,11 +5555,10 @@ drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h -drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcs.h \ + ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h +drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5757,9 +5672,11 @@ drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h -drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h +drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5872,9 +5789,10 @@ drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcshs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtcis.h +drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -5988,8 +5906,8 @@ drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ +drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcshs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6103,8 +6021,8 @@ drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtcss.h \ +drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6217,10 +6135,9 @@ drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtcss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6335,8 +6252,8 @@ drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h \ +drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6449,9 +6366,10 @@ drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtdddps.o: drtdddps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdddps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6564,10 +6482,9 @@ drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtddps.o: drtddps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtddps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6681,8 +6598,8 @@ drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ +drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -6796,14 +6713,16 @@ drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/drtdose.h ../include/dcmtk/dcmrt/drttypes.h \ +drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -6830,7 +6749,6 @@ drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -6910,82 +6828,9 @@ drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtbrs.h \ - ../include/dcmtk/dcmrt/seq/drtbrcss.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ - ../include/dcmtk/dcmrt/seq/drtcctus.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ - ../include/dcmtk/dcmrt/seq/drtois.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ - ../include/dcmtk/dcmrt/seq/drtdvhs.h \ - ../include/dcmtk/dcmrt/seq/drtdvrrs.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ - ../include/dcmtk/dcmrt/seq/drtpsss.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h \ - ../include/dcmtk/dcmrt/seq/drtrdros.h \ - ../include/dcmtk/dcmrt/seq/drtrwvms.h \ - ../include/dcmtk/dcmrt/seq/drtqds.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ - ../include/dcmtk/dcmrt/seq/drtrfors.h \ - ../include/dcmtk/dcmrt/seq/drtrsts.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps.h \ - ../include/dcmtk/dcmrt/seq/drtrfgs.h \ - ../include/dcmtk/dcmrt/seq/drtrbs2.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas2.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ - ../include/dcmtk/dcmrt/seq/drtrtrs2.h \ - ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ - ../include/dcmtk/dcmrt/seq/drtssrs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h -drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7099,8 +6944,8 @@ drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtds.h \ +drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7213,18 +7058,15 @@ drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/drtdose.h ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -7251,6 +7093,7 @@ drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -7330,9 +7173,88 @@ drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtbrs.h \ + ../include/dcmtk/dcmrt/seq/drtbrcss.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ + ../include/dcmtk/dcmrt/seq/drtcctus.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtdvhs.h \ + ../include/dcmtk/dcmrt/seq/drtdvrrs.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../include/dcmtk/dcmrt/seq/drtpsss.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtrdros.h \ + ../include/dcmtk/dcmrt/seq/drtrwvms.h \ + ../include/dcmtk/dcmrt/seq/drtqds.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrfors.h \ + ../include/dcmtk/dcmrt/seq/drtrsts.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps.h \ + ../include/dcmtk/dcmrt/seq/drtrfgs.h \ + ../include/dcmtk/dcmrt/seq/drtrbs2.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas2.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrtrs2.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtssrs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h +drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7445,11 +7367,9 @@ drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdvhs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7563,9 +7483,9 @@ drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtdvrrs.h -drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtdvrrs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7678,9 +7598,10 @@ drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drteas.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7793,9 +7714,11 @@ drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdvhs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -7908,9 +7831,10 @@ drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtes.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtdvrrs.h +drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtdvrrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8023,15 +7947,11 @@ drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \ - ../include/dcmtk/dcmrt/seq/drtblds5.h \ - ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ - ../include/dcmtk/dcmrt/seq/drtpfms.h -drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfds.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ - ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drteas.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ @@ -8143,8 +8063,8 @@ drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfes.h \ +drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8258,8 +8178,8 @@ drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfgs.h \ +drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtes.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8373,13 +8293,12 @@ drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrbs8.h \ - ../include/dcmtk/dcmrt/seq/drtbvcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas8.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h -drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfgss.h \ + ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \ + ../include/dcmtk/dcmrt/seq/drtblds5.h \ + ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../include/dcmtk/dcmrt/seq/drtpfms.h +drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8492,10 +8411,9 @@ drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtfsss.h -drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfms.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfes.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8609,8 +8527,8 @@ drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtfsss.h \ +drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfgs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8723,9 +8641,14 @@ drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrbs8.h \ + ../include/dcmtk/dcmrt/seq/drtbvcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas8.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h +drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfgss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8838,9 +8761,10 @@ drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtfsss.h +drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfms.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -8954,8 +8878,8 @@ drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ +drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtfsss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9069,8 +8993,8 @@ drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ +drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtgas.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9184,8 +9108,8 @@ drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiblds.h \ +drtgpis.o: drtgpis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9298,9 +9222,13 @@ drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtibls.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ + ../include/dcmtk/dcmrt/seq/drtajcs.h +drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9413,10 +9341,9 @@ drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbss.h -drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtibs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9529,26 +9456,9 @@ drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtas6.h ../include/dcmtk/dcmrt/seq/drtgas.h \ - ../include/dcmtk/dcmrt/seq/drtiblds.h \ - ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \ - ../include/dcmtk/dcmrt/seq/drticps.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtiwps.h \ - ../include/dcmtk/dcmrt/seq/drtlsds6.h \ - ../include/dcmtk/dcmrt/seq/drtrmss6.h \ - ../include/dcmtk/dcmrt/seq/drtrshs6.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ - ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \ - ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \ - ../include/dcmtk/dcmrt/seq/drtrshs.h \ - ../include/dcmtk/dcmrt/seq/drtrbos6.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h \ - ../include/dcmtk/dcmrt/seq/drtrris6.h \ - ../include/dcmtk/dcmrt/seq/drtsns.h -drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drticpds.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9661,15 +9571,9 @@ drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtcpas.h \ - ../include/dcmtk/dcmrt/seq/drtiwps.h \ - ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ - ../include/dcmtk/dcmrt/seq/drtrmss7.h \ - ../include/dcmtk/dcmrt/seq/drtrshs7.h -drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drticps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiblds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9782,15 +9686,9 @@ drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtiwps.h \ - ../include/dcmtk/dcmrt/seq/drtlsds6.h \ - ../include/dcmtk/dcmrt/seq/drtrmss6.h \ - ../include/dcmtk/dcmrt/seq/drtrshs6.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs6.h -drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtics.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtibls.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -9904,9 +9802,9 @@ drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h \ + ../include/dcmtk/dcmrt/seq/drtbss.h +drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtibs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -10019,15 +9917,35 @@ drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/drtimage.h ../include/dcmtk/dcmrt/drttypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtas6.h ../include/dcmtk/dcmrt/seq/drtddps.h \ + ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../include/dcmtk/dcmrt/seq/drtiblds.h \ + ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \ + ../include/dcmtk/dcmrt/seq/drticps.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../include/dcmtk/dcmrt/seq/drtlsds6.h \ + ../include/dcmtk/dcmrt/seq/drtrmss6.h \ + ../include/dcmtk/dcmrt/seq/drtrshs6.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ + ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \ + ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \ + ../include/dcmtk/dcmrt/seq/drtrshs.h \ + ../include/dcmtk/dcmrt/seq/drtrbos6.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h \ + ../include/dcmtk/dcmrt/seq/drtrris6.h \ + ../include/dcmtk/dcmrt/seq/drtsns.h +drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drticpds.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -10054,7 +9972,6 @@ drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -10134,82 +10051,24 @@ drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtbrs.h \ - ../include/dcmtk/dcmrt/seq/drtbrcss.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ - ../include/dcmtk/dcmrt/seq/drtcctus.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h \ - ../include/dcmtk/dcmrt/seq/drtcbars.h \ - ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \ - ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtds.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtes.h \ - ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \ - ../include/dcmtk/dcmrt/seq/drtblds5.h \ - ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ - ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \ - ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ - ../include/dcmtk/dcmrt/seq/drtmacds.h \ - ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrwvms.h \ - ../include/dcmtk/dcmrt/seq/drtqds.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h \ - ../include/dcmtk/dcmrt/seq/drtvls.h -drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/drtionpl.h ../include/dcmtk/dcmrt/drttypes.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtcpas.h \ + ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ + ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtrmss7.h \ + ../include/dcmtk/dcmrt/seq/drtrshs7.h +drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drticps.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -10236,7 +10095,6 @@ drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -10316,95 +10174,1666 @@ drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtbrs.h \ - ../include/dcmtk/dcmrt/seq/drtbrcss.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ - ../include/dcmtk/dcmrt/seq/drtcctus.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ - ../include/dcmtk/dcmrt/seq/drtois.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ - ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ - ../include/dcmtk/dcmrt/seq/drtbvcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas8.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \ - ../include/dcmtk/dcmrt/seq/drtgas.h \ - ../include/dcmtk/dcmrt/seq/drtiblds.h \ - ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \ - ../include/dcmtk/dcmrt/seq/drticps.h \ ../include/dcmtk/dcmrt/seq/drtbldps.h \ ../include/dcmtk/dcmrt/seq/drtiwps.h \ ../include/dcmtk/dcmrt/seq/drtlsds6.h \ - ../include/dcmtk/dcmrt/seq/drtrmss6.h \ - ../include/dcmtk/dcmrt/seq/drtrshs6.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ - ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \ - ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \ - ../include/dcmtk/dcmrt/seq/drtrshs.h \ - ../include/dcmtk/dcmrt/seq/drtrbos6.h \ - ../include/dcmtk/dcmrt/seq/drtrris6.h \ - ../include/dcmtk/dcmrt/seq/drtsns.h ../include/dcmtk/dcmrt/seq/drtitts.h \ - ../include/dcmtk/dcmrt/seq/drtbldts.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ - ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ - ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ - ../include/dcmtk/dcmrt/seq/drtshds.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h -drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/drtiontr.h ../include/dcmtk/dcmrt/drttypes.h \ + ../include/dcmtk/dcmrt/seq/drtrmss6.h \ + ../include/dcmtk/dcmrt/seq/drtrshs6.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs6.h +drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtics.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/drtimage.h ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtbrs.h \ + ../include/dcmtk/dcmrt/seq/drtbrcss.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ + ../include/dcmtk/dcmrt/seq/drtcctus.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h \ + ../include/dcmtk/dcmrt/seq/drtcbars.h \ + ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \ + ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtds.h \ + ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtes.h \ + ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \ + ../include/dcmtk/dcmrt/seq/drtblds5.h \ + ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \ + ../include/dcmtk/dcmrt/seq/drtfes.h ../include/dcmtk/dcmrt/seq/drtgpis.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h \ + ../include/dcmtk/dcmrt/seq/drtmacds.h \ + ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrwvms.h \ + ../include/dcmtk/dcmrt/seq/drtqds.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ + ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/seq/drtvls.h +drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/drtionpl.h ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtbrs.h \ + ../include/dcmtk/dcmrt/seq/drtbrcss.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ + ../include/dcmtk/dcmrt/seq/drtcctus.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ + ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ + ../include/dcmtk/dcmrt/seq/drtbvcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas8.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtgpis.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \ + ../include/dcmtk/dcmrt/seq/drtddps.h ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../include/dcmtk/dcmrt/seq/drtiblds.h \ + ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \ + ../include/dcmtk/dcmrt/seq/drticps.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../include/dcmtk/dcmrt/seq/drtlsds6.h \ + ../include/dcmtk/dcmrt/seq/drtrmss6.h \ + ../include/dcmtk/dcmrt/seq/drtrshs6.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ + ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \ + ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \ + ../include/dcmtk/dcmrt/seq/drtrshs.h \ + ../include/dcmtk/dcmrt/seq/drtrbos6.h \ + ../include/dcmtk/dcmrt/seq/drtrris6.h \ + ../include/dcmtk/dcmrt/seq/drtsns.h ../include/dcmtk/dcmrt/seq/drtitts.h \ + ../include/dcmtk/dcmrt/seq/drtbldts.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ + ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ + ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ + ../include/dcmtk/dcmrt/seq/drtshds.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h +drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/drtiontr.h ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtbrs.h \ + ../include/dcmtk/dcmrt/seq/drtbrcss.h \ + ../include/dcmtk/dcmrt/seq/drtcdrs.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ + ../include/dcmtk/dcmrt/seq/drtcctus.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \ + ../include/dcmtk/dcmrt/seq/drtfsss.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmdrs.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ + ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ + ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ + ../include/dcmtk/dcmrt/seq/drtshds.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps4.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrtrs4.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drttms0.h \ + ../include/dcmtk/dcmrt/seq/drttsibs.h \ + ../include/dcmtk/dcmrt/seq/drtas7.h \ + ../include/dcmtk/dcmrt/seq/drtbldls.h \ + ../include/dcmtk/dcmrt/seq/drtdddps.h \ + ../include/dcmtk/dcmrt/seq/drtgas.h \ + ../include/dcmtk/dcmrt/seq/drticpds.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtcpas.h \ + ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ + ../include/dcmtk/dcmrt/seq/drtrmss7.h \ + ../include/dcmtk/dcmrt/seq/drtrshs7.h \ + ../include/dcmtk/dcmrt/seq/drtrbls.h \ + ../include/dcmtk/dcmrt/seq/drtrcos.h \ + ../include/dcmtk/dcmrt/seq/drtrlsds.h \ + ../include/dcmtk/dcmrt/seq/drtrrms.h \ + ../include/dcmtk/dcmrt/seq/drtrrshs.h \ + ../include/dcmtk/dcmrt/seq/drtrsns.h ../include/dcmtk/dcmrt/seq/drtrws.h \ + ../include/dcmtk/dcmrt/seq/drtrbos7.h \ + ../include/dcmtk/dcmrt/seq/drtrcdrs.h \ + ../include/dcmtk/dcmrt/seq/drtrmdrs.h \ + ../include/dcmtk/dcmrt/seq/drtrvis.h \ + ../include/dcmtk/dcmrt/seq/drttscds.h \ + ../include/dcmtk/dcmrt/seq/drttsmds.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h +drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ + ../include/dcmtk/dcmrt/seq/drtajcs.h +drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtircs.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtitts.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtbldts.h +drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtiws.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtlsds.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtlsds6.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -10431,7 +11860,6 @@ drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -10510,94 +11938,9 @@ drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtbrs.h \ - ../include/dcmtk/dcmrt/seq/drtbrcss.h \ - ../include/dcmtk/dcmrt/seq/drtcdrs.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ - ../include/dcmtk/dcmrt/seq/drtcctus.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ - ../include/dcmtk/dcmrt/seq/drtois.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \ - ../include/dcmtk/dcmrt/seq/drtfsss.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmdrs.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ - ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ - ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ - ../include/dcmtk/dcmrt/seq/drtshds.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps4.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \ - ../include/dcmtk/dcmrt/seq/drtrtrs4.h \ - ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h \ - ../include/dcmtk/dcmrt/seq/drttms0.h \ - ../include/dcmtk/dcmrt/seq/drttsibs.h \ - ../include/dcmtk/dcmrt/seq/drtas7.h \ - ../include/dcmtk/dcmrt/seq/drtbldls.h \ - ../include/dcmtk/dcmrt/seq/drtgas.h \ - ../include/dcmtk/dcmrt/seq/drticpds.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtcpas.h \ - ../include/dcmtk/dcmrt/seq/drtiwps.h \ - ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ - ../include/dcmtk/dcmrt/seq/drtrmss7.h \ - ../include/dcmtk/dcmrt/seq/drtrshs7.h \ - ../include/dcmtk/dcmrt/seq/drtrbls.h \ - ../include/dcmtk/dcmrt/seq/drtrcos.h \ - ../include/dcmtk/dcmrt/seq/drtrlsds.h \ - ../include/dcmtk/dcmrt/seq/drtrrms.h \ - ../include/dcmtk/dcmrt/seq/drtrrshs.h \ - ../include/dcmtk/dcmrt/seq/drtrsns.h ../include/dcmtk/dcmrt/seq/drtrws.h \ - ../include/dcmtk/dcmrt/seq/drtrbos7.h \ - ../include/dcmtk/dcmrt/seq/drtrcdrs.h \ - ../include/dcmtk/dcmrt/seq/drtrmdrs.h \ - ../include/dcmtk/dcmrt/seq/drtrvis.h \ - ../include/dcmtk/dcmrt/seq/drttscds.h \ - ../include/dcmtk/dcmrt/seq/drttsmds.h -drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtlsds7.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -10710,12 +12053,9 @@ drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ - ../include/dcmtk/dcmrt/seq/drtajcs.h -drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtircs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmacds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -10828,9 +12168,10 @@ drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtecs.h +drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -10944,8 +12285,8 @@ drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtitts.h \ +drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11058,10 +12399,9 @@ drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbldts.h -drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiwps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11175,8 +12515,8 @@ drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtiws.h \ +drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11290,8 +12630,8 @@ drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtlsds.h \ +drtmris.o: drtmris.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmris.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11405,8 +12745,8 @@ drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtlsds6.h \ +drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11520,8 +12860,8 @@ drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtlsds7.h \ +drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11634,9 +12974,10 @@ drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmacds.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11750,9 +13091,9 @@ drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtecs.h -drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h +drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtois.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11865,9 +13206,11 @@ drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmdrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h +drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -11980,9 +13323,13 @@ drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmls.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ + ../include/dcmtk/dcmrt/seq/drtajcs.h +drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtos.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12095,9 +13442,11 @@ drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h +drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12209,10 +13558,11 @@ drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ - ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12325,9 +13675,10 @@ drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12441,9 +13792,13 @@ drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12557,9 +13912,10 @@ drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h -drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h +drtpdeds.o: drtpdeds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12672,11 +14028,9 @@ drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h -drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpfms.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12789,13 +14143,9 @@ drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ - ../include/dcmtk/dcmrt/seq/drtajcs.h -drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtos.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -12908,17 +14258,16 @@ drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/drtplan.h ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ - ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -12945,6 +14294,7 @@ drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -13024,9 +14374,99 @@ drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \ + ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \ + ../include/dcmtk/dcmrt/seq/drtbrdrs.h \ + ../include/dcmtk/dcmrt/seq/drtcshs.h \ + ../include/dcmtk/dcmrt/seq/drtrris9.h ../include/dcmtk/dcmrt/seq/drtbs.h \ + ../include/dcmtk/dcmrt/seq/drtas1.h ../include/dcmtk/dcmrt/seq/drtags.h \ + ../include/dcmtk/dcmrt/seq/drtblds1.h \ + ../include/dcmtk/dcmrt/seq/drtbl2.h ../include/dcmtk/dcmrt/seq/drtcos.h \ + ../include/dcmtk/dcmrt/seq/drtcps.h \ + ../include/dcmtk/dcmrt/seq/drtbldps.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h \ + ../include/dcmtk/dcmrt/seq/drtgas.h ../include/dcmtk/dcmrt/seq/drtpvis.h \ + ../include/dcmtk/dcmrt/seq/drtpfms.h \ + ../include/dcmtk/dcmrt/seq/drtrbos1.h \ + ../include/dcmtk/dcmrt/seq/drtrris1.h ../include/dcmtk/dcmrt/seq/drtws.h \ + ../include/dcmtk/dcmrt/seq/drtbrs.h \ + ../include/dcmtk/dcmrt/seq/drtbrcss.h \ + ../include/dcmtk/dcmrt/seq/drtcsis.h \ + ../include/dcmtk/dcmrt/seq/drtcctus.h \ + ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtois.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtcsas.h \ + ../include/dcmtk/dcmrt/seq/drtdimcs.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdspcs.h \ + ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ + ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ + ../include/dcmtk/dcmrt/seq/drtbvcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas8.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtiseis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ + ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ + ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ + ../include/dcmtk/dcmrt/seq/drtshds.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drttts.h \ + ../include/dcmtk/dcmrt/seq/drtbldts.h \ + ../include/dcmtk/dcmrt/seq/drttms9.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h +drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13141,8 +14581,8 @@ drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h \ +drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtporis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13256,13 +14696,10 @@ drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ + ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h +drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtppcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13376,9 +14813,13 @@ drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h -drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpfms.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \ + ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13491,9 +14932,11 @@ drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h +drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpscs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13608,14 +15051,16 @@ drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/drtplan.h ../include/dcmtk/dcmrt/drttypes.h \ +drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ ../../ofstd/include/dcmtk/ofstd/ofcast.h \ ../../ofstd/include/dcmtk/ofstd/ofexport.h \ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ @@ -13642,7 +15087,6 @@ drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \ ../../oflog/include/dcmtk/oflog/tracelog.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ - ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ ../../ofstd/include/dcmtk/ofstd/ofthread.h \ ../../ofstd/include/dcmtk/ofstd/offile.h \ @@ -13722,89 +15166,9 @@ drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \ - ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \ - ../include/dcmtk/dcmrt/seq/drtbrdrs.h \ - ../include/dcmtk/dcmrt/seq/drtcshs.h \ - ../include/dcmtk/dcmrt/seq/drtrris9.h ../include/dcmtk/dcmrt/seq/drtbs.h \ - ../include/dcmtk/dcmrt/seq/drtas1.h ../include/dcmtk/dcmrt/seq/drtags.h \ - ../include/dcmtk/dcmrt/seq/drtblds1.h \ - ../include/dcmtk/dcmrt/seq/drtbl2.h ../include/dcmtk/dcmrt/seq/drtcos.h \ - ../include/dcmtk/dcmrt/seq/drtcps.h \ - ../include/dcmtk/dcmrt/seq/drtbldps.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h \ - ../include/dcmtk/dcmrt/seq/drtgas.h ../include/dcmtk/dcmrt/seq/drtpvis.h \ - ../include/dcmtk/dcmrt/seq/drtpfms.h \ - ../include/dcmtk/dcmrt/seq/drtrbos1.h \ - ../include/dcmtk/dcmrt/seq/drtrris1.h ../include/dcmtk/dcmrt/seq/drtws.h \ - ../include/dcmtk/dcmrt/seq/drtbrs.h \ - ../include/dcmtk/dcmrt/seq/drtbrcss.h \ - ../include/dcmtk/dcmrt/seq/drtcsis.h \ - ../include/dcmtk/dcmrt/seq/drtcctus.h \ - ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ - ../include/dcmtk/dcmrt/seq/drtois.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtcsas.h \ - ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ - ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ - ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ - ../include/dcmtk/dcmrt/seq/drtbvcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas8.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ - ../include/dcmtk/dcmrt/seq/drtipiqs.h \ - ../include/dcmtk/dcmrt/seq/drtaadcs.h \ - ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ - ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ - ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ - ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ - ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ - ../include/dcmtk/dcmrt/seq/drtshds.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ - ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h \ - ../include/dcmtk/dcmrt/seq/drttts.h \ - ../include/dcmtk/dcmrt/seq/drtbldts.h \ - ../include/dcmtk/dcmrt/seq/drttms9.h -drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -13918,9 +15282,11 @@ drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtporis.h \ + ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ + ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ + ../include/dcmtk/dcmrt/seq/drtshds.h +drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14033,11 +15399,9 @@ drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h -drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtppcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtpvis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14150,14 +15514,9 @@ drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \ - ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtprsis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtqds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14271,10 +15630,12 @@ drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h -drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpscs.h \ + ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtras.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14388,9 +15749,18 @@ drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpsics.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbas2.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14503,10 +15873,9 @@ drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpss.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbas8.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14619,12 +15988,9 @@ drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ - ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ - ../include/dcmtk/dcmrt/seq/drtshds.h -drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpsss.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbls.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14738,8 +16104,8 @@ drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtpvis.h \ +drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbos1.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14853,8 +16219,8 @@ drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtqds.h \ +drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbos6.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -14967,13 +16333,9 @@ drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbos7.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15086,19 +16448,9 @@ drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtrss.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ - ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbas2.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbs2.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15211,9 +16563,10 @@ drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbas8.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h +drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbs4.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15326,9 +16679,10 @@ drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbls.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtbvcps.h +drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrbs8.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15441,9 +16795,10 @@ drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbos1.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtbvcps.h +drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrcdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15557,8 +16912,8 @@ drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbos6.h \ +drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrcos.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15672,8 +17027,8 @@ drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbos7.h \ +drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15787,8 +17142,8 @@ drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbs2.h \ +drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -15902,9 +17257,9 @@ drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h -drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbs4.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h +drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrdros.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16017,10 +17372,9 @@ drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbvcps.h -drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrbs8.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16133,10 +17487,9 @@ drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtbvcps.h -drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrcdrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16250,8 +17603,8 @@ drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrcos.h \ +drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16365,8 +17718,8 @@ drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h \ +drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16480,8 +17833,8 @@ drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h \ +drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrecs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16594,10 +17947,9 @@ drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h -drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrdros.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrfgs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16710,9 +18062,12 @@ drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs1.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrbs2.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas2.h +drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16825,9 +18180,11 @@ drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs6.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrsts.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h +drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -16940,9 +18297,11 @@ drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h +drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17055,9 +18414,11 @@ drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtris.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17170,9 +18531,11 @@ drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrecs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrlsds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17286,8 +18649,8 @@ drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrfgs.h \ +drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrmdrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17400,12 +18763,9 @@ drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrbs2.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas2.h -drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrfors.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrms.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17518,11 +18878,9 @@ drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrsts.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h -drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrmss6.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17635,10 +18993,9 @@ drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrmss7.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17751,11 +19108,9 @@ drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtris.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17869,10 +19224,9 @@ drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrlsds.h \ +drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -17985,9 +19339,11 @@ drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrmdrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h +drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18100,9 +19456,10 @@ drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrms.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18215,9 +19572,14 @@ drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrmss6.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtdimrs.h \ + ../include/dcmtk/dcmrt/seq/drtdirs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ + ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h +drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrpps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18330,9 +19692,10 @@ drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrmss7.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrecs.h +drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18446,8 +19809,8 @@ drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrpcs.h \ +drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18560,10 +19923,9 @@ drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrpis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrris1.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18676,11 +20038,9 @@ drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h -drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrris6.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18793,10 +20153,9 @@ drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrpphs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrris9.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -18909,14 +20268,9 @@ drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtdimrs.h \ - ../include/dcmtk/dcmrt/seq/drtdirs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ - ../include/dcmtk/dcmrt/seq/drtwrsrs.h \ - ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h -drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrpps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrms.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19029,10 +20383,9 @@ drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrecs.h -drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrppss.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrros.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19145,9 +20498,16 @@ drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrpps.h \ + ../include/dcmtk/dcmrt/seq/drtrecs.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ + ../include/dcmtk/dcmrt/seq/drtrrros.h \ + ../include/dcmtk/dcmrt/seq/drtspccs.h +drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19260,9 +20620,10 @@ drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrris1.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrros.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19376,8 +20737,8 @@ drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrris6.h \ +drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19491,8 +20852,8 @@ drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrris9.h \ +drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrshs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19606,8 +20967,8 @@ drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrms.h \ +drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19720,9 +21081,13 @@ drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrros.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrfgs.h \ + ../include/dcmtk/dcmrt/seq/drtrbs2.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h \ + ../include/dcmtk/dcmrt/seq/drtrbas2.h +drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19835,17 +21200,9 @@ drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtrpps.h \ - ../include/dcmtk/dcmrt/seq/drtrecs.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \ - ../include/dcmtk/dcmrt/seq/drtrrros.h \ - ../include/dcmtk/dcmrt/seq/drtspccs.h -drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps4.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -19958,10 +21315,9 @@ drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrros.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20075,8 +21431,8 @@ drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrs.h \ +drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrscs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20189,9 +21545,10 @@ drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrshs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20304,9 +21661,12 @@ drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20420,12 +21780,9 @@ drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrfgs.h \ - ../include/dcmtk/dcmrt/seq/drtrbs2.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h \ - ../include/dcmtk/dcmrt/seq/drtrbas2.h -drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ + ../include/dcmtk/dcmrt/seq/drtcis.h +drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrshs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20539,8 +21896,8 @@ drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps4.h \ +drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrshs6.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20654,8 +22011,8 @@ drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ +drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrshs7.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20769,8 +22126,8 @@ drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrscs.h \ +drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20883,10 +22240,9 @@ drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsns.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -20999,12 +22355,9 @@ drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtris.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21117,10 +22470,9 @@ drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h -drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrshs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21234,8 +22586,8 @@ drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrshs6.h \ +drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21349,8 +22701,8 @@ drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrshs7.h \ +drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21464,8 +22816,8 @@ drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsis.h \ +drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrsts.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21578,9 +22930,10 @@ drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsns.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h +drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrtrs2.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21693,9 +23046,11 @@ drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtrbs2.h \ + ../include/dcmtk/dcmrt/seq/drtrcps.h +drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrtrs4.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21809,8 +23164,8 @@ drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsrs.h \ +drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrvis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -21924,8 +23279,8 @@ drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h \ +drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrws.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22039,8 +23394,8 @@ drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsss.h \ +drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtrwvms.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22153,9 +23508,13 @@ drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrsts.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ + ../include/dcmtk/dcmrt/seq/drtqds.h ../include/dcmtk/dcmrt/seq/drtccs.h \ + ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22269,9 +23628,12 @@ drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h -drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrtrs2.h \ + ../include/dcmtk/dcmrt/seq/drtrsers.h \ + ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtscs.o: drtscs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22385,10 +23747,9 @@ drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrbs2.h \ - ../include/dcmtk/dcmrt/seq/drtrcps.h -drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrtrs4.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22501,9 +23862,10 @@ drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrvis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22617,8 +23979,8 @@ drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrws.h \ +drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtshds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22732,8 +24094,8 @@ drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtrwvms.h \ +drtsins.o: drtsins.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22847,12 +24209,10 @@ drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h ../include/dcmtk/dcmrt/seq/drtecs.h \ - ../include/dcmtk/dcmrt/seq/drtqds.h ../include/dcmtk/dcmrt/seq/drtccs.h \ - ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtporcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -22966,12 +24326,10 @@ drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtecs.h -drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ +drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsns.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23084,10 +24442,9 @@ drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtsds.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtspccs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23200,9 +24557,10 @@ drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtshds.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23315,9 +24673,14 @@ drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \ + ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \ + ../include/dcmtk/dcmrt/seq/drtcims.h \ + ../include/dcmtk/dcmrt/seq/drtmucs.h \ + ../include/dcmtk/dcmrt/seq/drtrsos.h +drtspgis.o: drtspgis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23431,10 +24794,12 @@ drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtporcs.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtsns.h \ + ../include/dcmtk/dcmrt/seq/drtipiqs.h \ + ../include/dcmtk/dcmrt/seq/drtaadcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \ + ../include/dcmtk/dcmrt/seq/drtajcs.h +drtsptcs.o: drtsptcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23547,9 +24912,10 @@ drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtspccs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23662,10 +25028,9 @@ drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h -drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtspcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtssrcs.o: drtssrcs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23779,13 +25144,9 @@ drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \ - ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \ - ../include/dcmtk/dcmrt/seq/drtcims.h \ - ../include/dcmtk/dcmrt/seq/drtmucs.h \ - ../include/dcmtk/dcmrt/seq/drtrsos.h -drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h +drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtssrs.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -23898,9 +25259,10 @@ drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ - ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h -drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \ - ../include/dcmtk/dcmrt/seq/drtssrs.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtecs.h +drtsss.o: drtsss.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtsss.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ @@ -24014,7 +25376,8 @@ drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ - ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtecs.h + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/drtstrct.h ../include/dcmtk/dcmrt/drttypes.h \ ../../ofstd/include/dcmtk/ofstd/oftypes.h \ @@ -24135,23 +25498,25 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ - ../include/dcmtk/dcmrt/seq/drteas.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -24165,19 +25530,23 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h ../include/dcmtk/dcmrt/seq/drtrros.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtrros.h \ ../include/dcmtk/dcmrt/seq/drtrpps.h \ ../include/dcmtk/dcmrt/seq/drtrecs.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ ../include/dcmtk/dcmrt/seq/drtrrros.h \ ../include/dcmtk/dcmrt/seq/drtspccs.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../include/dcmtk/dcmrt/seq/drtrsts.h \ ../include/dcmtk/dcmrt/seq/drtrses.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -24186,15 +25555,20 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrps.h \ ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \ - ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ + ../include/dcmtk/dcmrt/seq/drtras.h \ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ - ../include/dcmtk/dcmrt/seq/drtssrs.h ../include/dcmtk/dcmrt/seq/drtdcs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ + ../include/dcmtk/dcmrt/seq/drtssrs.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h drttms0.o: drttms0.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drttms0.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ @@ -24545,24 +25919,27 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \ ../include/dcmtk/dcmrt/seq/drtfsss.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -24575,8 +25952,11 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtporis.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -24586,17 +25966,22 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../include/dcmtk/dcmrt/seq/drtrrtps4.h \ ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrss.h \ ../include/dcmtk/dcmrt/seq/drtrtrs4.h \ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtscris.h \ ../include/dcmtk/dcmrt/seq/drttscds.h \ - ../include/dcmtk/dcmrt/seq/drttsmds.h + ../include/dcmtk/dcmrt/seq/drttsmds.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h drttscds.o: drttscds.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drttscds.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ @@ -24829,12 +26214,15 @@ drttsibs.o: drttsibs.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \ ../include/dcmtk/dcmrt/seq/drtas7.h \ ../include/dcmtk/dcmrt/seq/drtbldls.h \ + ../include/dcmtk/dcmrt/seq/drtdddps.h \ ../include/dcmtk/dcmrt/seq/drtgas.h \ ../include/dcmtk/dcmrt/seq/drticpds.h \ ../include/dcmtk/dcmrt/seq/drtbldps.h \ ../include/dcmtk/dcmrt/seq/drtcpas.h \ ../include/dcmtk/dcmrt/seq/drtiwps.h \ ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \ + ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \ + ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \ ../include/dcmtk/dcmrt/seq/drtrmss7.h \ ../include/dcmtk/dcmrt/seq/drtrshs7.h \ ../include/dcmtk/dcmrt/seq/drtrbls.h \ @@ -25192,6 +26580,121 @@ drttypes.o: drttypes.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h +drtudis.o: drtudis.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/dcmrt/drttypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctk.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \ + ../../ofstd/include/dcmtk/ofstd/ofglobal.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ + ../../dcmdata/include/dcmtk/dcmdata/dctag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \ + ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ + ../../dcmdata/include/dcmtk/dcmdata/dclist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \ + ../../ofstd/include/dcmtk/ofstd/ofmap.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ + ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \ + ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h drtvls.o: drtvls.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtvls.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ diff --git a/dcmrt/libsrc/Makefile.in b/dcmrt/libsrc/Makefile.in index 30c5409a..56cf836c 100644 --- a/dcmrt/libsrc/Makefile.in +++ b/dcmrt/libsrc/Makefile.in @@ -23,35 +23,38 @@ LOCALDEFS = objs = drtdose.o drtimage.o drtplan.o drtstrct.o drttreat.o drtionpl.o drtiontr.o \ drmdose.o drmimage.o drmplan.o drmstrct.o drttypes.o \ - drtaadcs.o drtadcs.o drtads.o drtafs.o drtags.o drtajcs.o drtarics.o \ - drtas1.o drtas5.o drtas6.o drtas7.o drtass.o drtbads.o drtbas.o \ - drtbcps.o drtbl2.o drtbl5.o drtbldls.o drtbldps.o drtblds1.o drtblds5.o \ - drtblds6.o drtbldts.o drtbrcss.o drtbrdrs.o drtbrs.o drtbs.o drtbss.o \ - drtbvcps.o drtcbars.o drtccs.o drtcctus.o drtcdrs.o drtces.o drtchs.o \ + drtaadcs.o drtadcs.o drtads.o drtafs.o drtags.o drtajcs.o drtas1.o \ + drtas5.o drtas6.o drtas7.o drtass.o drtbads.o drtbas.o drtbcps.o \ + drtbl2.o drtbl5.o drtbldls.o drtbldps.o drtblds1.o drtblds5.o drtblds6.o \ + drtbldts.o drtbrcss.o drtbrdrs.o drtbrs.o drtbs.o drtbss.o drtbvcps.o \ + drtcbars.o drtccs.o drtcctus.o drtcdrs.o drtces.o drtcgis.o drtchs.o \ drtcims.o drtcis.o drtcncs.o drtcos.o drtcpas.o drtcpis.o drtcps.o \ - drtcsas.o drtcs.o drtcshs.o drtcsis.o drtcss.o drtdcs.o drtdias.o \ - drtdimcs.o drtdimrs.o drtdirs.o drtdrs.o drtds.o drtdspcs.o drtdss.o \ - drtdvhs.o drtdvrrs.o drteas.o drtecs.o drtes.o drtfds.o drtfes.o drtfgs.o \ - drtfgss.o drtfms.o drtfsss.o drtgas.o drthsdrs.o drtiais.o drtians.o \ - drtiblds.o drtibls.o drtibs.o drticpds.o drticps.o drtics.o drtiis.o \ - drtipiqs.o drtircs.o drtiseis.o drtitts.o drtiwps.o drtiws.o drtlsds6.o \ - drtlsds7.o drtlsds.o drtmacds.o drtmas.o drtmdrs.o drtmls.o drtmps.o \ - drtmss.o drtmucs.o drtoas.o drtois.o drtopis.o drtos.o drtpbcs.o drtpcs.o \ - drtpcxs.o drtpdecs.o drtpfms.o drtpics.o drtporcs.o drtporis.o drtppcs.o \ - drtprsis.o drtpscs.o drtpsics.o drtpss.o drtpsss.o drtpvis.o drtqds.o \ - drtras.o drtrbas2.o drtrbas8.o drtrbls.o drtrbos1.o drtrbos6.o drtrbos7.o \ - drtrbs2.o drtrbs4.o drtrbs8.o drtrcdrs.o drtrcos.o drtrcps.o drtrcs.o \ - drtrdros.o drtrdrs1.o drtrdrs6.o drtrdrs8.o drtrds.o drtrecs.o drtrfgs.o \ - drtrfors.o drtrics.o drtrims.o drtris.o drtrlsds.o drtrmdrs.o drtrms.o \ - drtrmss6.o drtrmss7.o drtrpcs.o drtrpis.o drtrppcs.o drtrpphs.o drtrpps.o \ - drtrppss.o drtrps.o drtrris1.o drtrris6.o drtrris9.o drtrrms.o drtrros.o \ - drtrrpcs.o drtrrros.o drtrrs.o drtrrshs.o drtrrtps3.o drtrrtps4.o \ - drtrrtps5.o drtrrtps.o drtrscs.o drtrsers.o drtrses.o drtrshs6.o \ - drtrshs7.o drtrshs.o drtrsis.o drtrsns.o drtrsos.o drtrsrs.o drtrss.o \ - drtrsss.o drtrsts.o drtrtrs2.o drtrtrs4.o drtrvis.o drtrws.o drtrwvms.o \ - drtscris.o drtsdcs.o drtsds.o drtshds.o drtsis.o drtsns.o drtspccs.o \ - drtspcs.o drtss.o drtssrs.o drttms0.o drttms9.o drttscds.o drttsibs.o \ - drttsmds.o drttts.o drtvls.o drtwps.o drtwrs.o drtwrsrs.o drtws.o drtxrs.o + drtcsas.o drtcs.o drtcshs.o drtcsis.o drtcss.o drtdcs.o drtdddps.o \ + drtddps.o drtdias.o drtdimcs.o drtdimrs.o drtdirs.o drtdrs.o drtds.o \ + drtdspcs.o drtdss.o drtdvhs.o drtdvrrs.o drteas.o drtecs.o drtes.o \ + drtfds.o drtfes.o drtfgs.o drtfgss.o drtfms.o drtfsss.o drtgas.o \ + drtgpis.o drthsdrs.o drtiais.o drtians.o drtiblds.o drtibls.o drtibs.o \ + drticpds.o drticps.o drtics.o drtiis.o drtipiqs.o drtircs.o drtiseis.o \ + drtitts.o drtiwps.o drtiws.o drtlsds6.o drtlsds7.o drtlsds.o drtmacds.o \ + drtmas.o drtmdrs.o drtmls.o drtmps.o drtmris.o drtmss.o drtmucs.o \ + drtoas.o drtois.o drtopis.o drtos.o drtpbcs.o drtpcs.o drtpcxs.o \ + drtpdecs.o drtpdeds.o drtpfms.o drtpics.o drtporcs.o drtporis.o \ + drtppcs.o drtprsis.o drtpscs.o drtpsics.o drtpss.o drtpsss.o drtpvis.o \ + drtqds.o drtras.o drtrbas2.o drtrbas8.o drtrbls.o drtrbos1.o drtrbos6.o \ + drtrbos7.o drtrbs2.o drtrbs4.o drtrbs8.o drtrcdrs.o drtrcos.o drtrcps.o \ + drtrcs.o drtrdros.o drtrdrs1.o drtrdrs6.o drtrdrs8.o drtrds.o drtrecs.o \ + drtrfgs.o drtrfors.o drtrics.o drtrims.o drtris.o drtrlsds.o drtrmdrs.o \ + drtrms.o drtrmss6.o drtrmss7.o drtrpcs.o drtrpis.o drtrppcs.o drtrpphs.o \ + drtrpps.o drtrppss.o drtrps.o drtrris1.o drtrris6.o drtrris9.o drtrrms.o \ + drtrros.o drtrrpcs.o drtrrros.o drtrrs.o drtrrshs.o drtrrtps3.o \ + drtrrtps4.o drtrrtps5.o drtrrtps.o drtrscs.o drtrsers.o drtrses.o \ + drtrshs6.o drtrshs7.o drtrshs.o drtrsis.o drtrsns.o drtrsos.o drtrsrs.o \ + drtrss.o drtrsss.o drtrsts.o drtrtrs2.o drtrtrs4.o drtrvis.o drtrws.o \ + drtrwvms.o drtscris.o drtscs.o drtsdcs.o drtsds.o drtshds.o drtsins.o \ + drtsis.o drtsns.o drtspccs.o drtspcs.o drtspgis.o drtsptcs.o drtss.o \ + drtssrcs.o drtssrs.o drtsss.o drttms0.o drttms9.o drttscds.o drttsibs.o \ + drttsmds.o drttts.o drtudis.o drtvls.o drtwps.o drtwrs.o drtwrsrs.o \ + drtws.o drtxrs.o library = libdcmrt.$(LIBEXT) diff --git a/dcmrt/libsrc/drtaadcs.cc b/dcmrt/libsrc/drtaadcs.cc index c25a13a2..bf66a339 100644 --- a/dcmrt/libsrc/drtaadcs.cc +++ b/dcmrt/libsrc/drtaadcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTAssigningAgencyOrDepartmentCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item::Item(const OFBool emptyDefault EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartment EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTAssigningAgencyOrDepartmentCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTAssigningAgencyOrDepartmentCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::read(DcmItem &item getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::write(DcmItem &ite addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AssigningAgencyOrDepartmentCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResource } +OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResource } +OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtadcs.cc b/dcmrt/libsrc/drtadcs.cc index a350a8e8..0a40d96e 100644 --- a/dcmrt/libsrc/drtadcs.cc +++ b/dcmrt/libsrc/drtadcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTAdmittingDiagnosesCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTAdmittingDiagnosesCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTAdmittingDiagnosesCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::Item EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTAdmittingDiagnosesCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTAdmittingDiagnosesCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdmittingDiagnosesCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdmittingDiagnosesCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdmittingDiagnosesCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AdmittingDiagnosesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdmittingDiagnosesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdmittingDiagnosesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdmittingDiagnosesCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdmittingDiagnosesCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdmittingDiagnosesCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdmittingDiagnosesCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AdmittingDiagnosesCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdmittingDiagnosesCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdmittingDiagnosesCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdmittingDiagnosesCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResource(const OF } +OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtads.cc b/dcmrt/libsrc/drtads.cc index b5f23b84..7fcd8821 100644 --- a/dcmrt/libsrc/drtads.cc +++ b/dcmrt/libsrc/drtads.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTAdditionalDrugSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTAdditionalDrugSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTAdditionalDrugSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::Item::operator=(cons EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTAdditionalDrugSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTAdditionalDrugSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTAdditionalDrugSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdditionalDrugSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdditionalDrugSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdditionalDrugSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AdditionalDrugSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdditionalDrugSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdditionalDrugSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdditionalDrugSequence"); @@ -186,6 +192,7 @@ OFCondition DRTAdditionalDrugSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdditionalDrugSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdditionalDrugSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdditionalDrugSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AdditionalDrugSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdditionalDrugSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdditionalDrugSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdditionalDrugSequence"); @@ -303,6 +310,15 @@ OFCondition DRTAdditionalDrugSequence::Item::getMappingResource(OFString &value, } +OFCondition DRTAdditionalDrugSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTAdditionalDrugSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTAdditionalDrugSequence::Item::setMappingResource(const OFString & } +OFCondition DRTAdditionalDrugSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTAdditionalDrugSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtafs.cc b/dcmrt/libsrc/drtafs.cc index 86fa43f9..45e04c5b 100644 --- a/dcmrt/libsrc/drtafs.cc +++ b/dcmrt/libsrc/drtafs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTAssigningFacilitySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtags.cc b/dcmrt/libsrc/drtags.cc index d84ca151..0b61ab8b 100644 --- a/dcmrt/libsrc/drtags.cc +++ b/dcmrt/libsrc/drtags.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicatorGeometrySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtajcs.cc b/dcmrt/libsrc/drtajcs.cc index 17a0ff60..35f51eec 100644 --- a/dcmrt/libsrc/drtajcs.cc +++ b/dcmrt/libsrc/drtajcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTAssigningJurisdictionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTAssigningJurisdictionCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTAssigningJurisdictionCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTAssigningJurisdictionCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTAssigningJurisdictionCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AssigningJurisdictionCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AssigningJurisdictionCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AssigningJurisdictionCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AssigningJurisdictionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AssigningJurisdictionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AssigningJurisdictionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AssigningJurisdictionCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AssigningJurisdictionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AssigningJurisdictionCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AssigningJurisdictionCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AssigningJurisdictionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AssigningJurisdictionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AssigningJurisdictionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AssigningJurisdictionCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResource(OFStr } +OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResource(const } +OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtarics.cc b/dcmrt/libsrc/drtarics.cc deleted file mode 100644 index 7e6d530b..00000000 --- a/dcmrt/libsrc/drtarics.cc +++ /dev/null @@ -1,935 +0,0 @@ -/* - * - * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany - * All rights reserved. See COPYRIGHT file for details. - * - * Source file for class DRTAdditionalRTROIIdentificationCodeSequence - * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 - * - */ - - -#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first - -#include "dcmtk/dcmrt/seq/drtarics.h" - - -// --- item class --- - -DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem) - : EmptyDefaultItem(emptyDefaultItem), - CodeMeaning(DCM_CodeMeaning), - CodeValue(DCM_CodeValue), - CodingSchemeDesignator(DCM_CodingSchemeDesignator), - CodingSchemeVersion(DCM_CodingSchemeVersion), - ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID), - ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag), - ContextGroupLocalVersion(DCM_ContextGroupLocalVersion), - ContextGroupVersion(DCM_ContextGroupVersion), - ContextIdentifier(DCM_ContextIdentifier), - ContextUID(DCM_ContextUID), - EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), - LongCodeValue(DCM_LongCodeValue), - MappingResource(DCM_MappingResource), - MappingResourceUID(DCM_MappingResourceUID), - PurposeOfReferenceCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), - URNCodeValue(DCM_URNCodeValue) -{ -} - - -DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const Item ©) - : EmptyDefaultItem(copy.EmptyDefaultItem), - CodeMeaning(copy.CodeMeaning), - CodeValue(copy.CodeValue), - CodingSchemeDesignator(copy.CodingSchemeDesignator), - CodingSchemeVersion(copy.CodingSchemeVersion), - ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID), - ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag), - ContextGroupLocalVersion(copy.ContextGroupLocalVersion), - ContextGroupVersion(copy.ContextGroupVersion), - ContextIdentifier(copy.ContextIdentifier), - ContextUID(copy.ContextUID), - EquivalentCodeSequence(copy.EquivalentCodeSequence), - LongCodeValue(copy.LongCodeValue), - MappingResource(copy.MappingResource), - MappingResourceUID(copy.MappingResourceUID), - PurposeOfReferenceCodeSequence(copy.PurposeOfReferenceCodeSequence), - URNCodeValue(copy.URNCodeValue) -{ -} - - -DRTAdditionalRTROIIdentificationCodeSequence::Item::~Item() -{ -} - - -DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::Item::operator=(const Item ©) -{ - if (this != ©) - { - EmptyDefaultItem = copy.EmptyDefaultItem; - CodeMeaning = copy.CodeMeaning; - CodeValue = copy.CodeValue; - CodingSchemeDesignator = copy.CodingSchemeDesignator; - CodingSchemeVersion = copy.CodingSchemeVersion; - ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID; - ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag; - ContextGroupLocalVersion = copy.ContextGroupLocalVersion; - ContextGroupVersion = copy.ContextGroupVersion; - ContextIdentifier = copy.ContextIdentifier; - ContextUID = copy.ContextUID; - EquivalentCodeSequence = copy.EquivalentCodeSequence; - LongCodeValue = copy.LongCodeValue; - MappingResource = copy.MappingResource; - MappingResourceUID = copy.MappingResourceUID; - PurposeOfReferenceCodeSequence = copy.PurposeOfReferenceCodeSequence; - URNCodeValue = copy.URNCodeValue; - } - return *this; -} - - -void DRTAdditionalRTROIIdentificationCodeSequence::Item::clear() -{ - if (!EmptyDefaultItem) - { - /* clear all DICOM attributes */ - CodeValue.clear(); - CodingSchemeDesignator.clear(); - CodingSchemeVersion.clear(); - CodeMeaning.clear(); - LongCodeValue.clear(); - URNCodeValue.clear(); - EquivalentCodeSequence.clear(); - ContextIdentifier.clear(); - ContextUID.clear(); - MappingResource.clear(); - MappingResourceUID.clear(); - ContextGroupVersion.clear(); - ContextGroupExtensionFlag.clear(); - ContextGroupLocalVersion.clear(); - ContextGroupExtensionCreatorUID.clear(); - PurposeOfReferenceCodeSequence.clear(); - } -} - - -OFBool DRTAdditionalRTROIIdentificationCodeSequence::Item::isEmpty() -{ - return CodeValue.isEmpty() && - CodingSchemeDesignator.isEmpty() && - CodingSchemeVersion.isEmpty() && - CodeMeaning.isEmpty() && - LongCodeValue.isEmpty() && - URNCodeValue.isEmpty() && - EquivalentCodeSequence.isEmpty() && - ContextIdentifier.isEmpty() && - ContextUID.isEmpty() && - MappingResource.isEmpty() && - MappingResourceUID.isEmpty() && - ContextGroupVersion.isEmpty() && - ContextGroupExtensionFlag.isEmpty() && - ContextGroupLocalVersion.isEmpty() && - ContextGroupExtensionCreatorUID.isEmpty() && - PurposeOfReferenceCodeSequence.isEmpty(); -} - - -OFBool DRTAdditionalRTROIIdentificationCodeSequence::Item::isValid() const -{ - return !EmptyDefaultItem; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::read(DcmItem &item) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - /* re-initialize object */ - clear(); - getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - EquivalentCodeSequence.read(item, "1-n", "3", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - PurposeOfReferenceCodeSequence.read(item, "1-n", "1", "AdditionalRTROIIdentificationCodeSequence"); - result = EC_Normal; - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::write(DcmItem &item) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = EC_Normal; - addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "AdditionalRTROIIdentificationCodeSequence"); - if (result.good()) result = PurposeOfReferenceCodeSequence.write(item, "1-n", "1", "AdditionalRTROIIdentificationCodeSequence"); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(CodeMeaning, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(CodeValue, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(CodingSchemeDesignator, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(CodingSchemeVersion, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(ContextGroupExtensionFlag, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(ContextGroupLocalVersion, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(ContextGroupVersion, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(ContextIdentifier, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(ContextUID, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(LongCodeValue, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(MappingResource, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(MappingResourceUID, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const -{ - if (EmptyDefaultItem) - return EC_IllegalCall; - else - return getStringValueFromElement(URNCodeValue, value, pos); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = CodeMeaning.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = CodeValue.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = CodingSchemeDesignator.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = CodingSchemeVersion.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = ContextGroupExtensionCreatorUID.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = ContextGroupExtensionFlag.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = ContextGroupLocalVersion.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = ContextGroupVersion.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = ContextIdentifier.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextUID(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = ContextUID.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = LongCodeValue.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = MappingResource.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; - if (result.good()) - result = MappingResourceUID.putOFStringArray(value); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultItem) - { - result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal; - if (result.good()) - result = URNCodeValue.putOFStringArray(value); - } - return result; -} - - -// --- sequence class --- - -DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCodeSequence(const OFBool emptyDefaultSequence) - : EmptyDefaultSequence(emptyDefaultSequence), - SequenceOfItems(), - CurrentItem(), - EmptyItem(OFTrue /*emptyDefaultItem*/) -{ - CurrentItem = SequenceOfItems.end(); -} - - -DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCodeSequence(const DRTAdditionalRTROIIdentificationCodeSequence ©) - : EmptyDefaultSequence(copy.EmptyDefaultSequence), - SequenceOfItems(), - CurrentItem(), - EmptyItem(OFTrue /*emptyDefaultItem*/) -{ - /* create a copy of the internal sequence of items */ - Item *item = NULL; - OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); - const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); - while (current != last) - { - item = new Item(**current); - if (item != NULL) - { - SequenceOfItems.push_back(item); - } else { - /* memory exhausted, there is nothing we can do about it */ - break; - } - ++current; - } - CurrentItem = SequenceOfItems.begin(); -} - - -DRTAdditionalRTROIIdentificationCodeSequence &DRTAdditionalRTROIIdentificationCodeSequence::operator=(const DRTAdditionalRTROIIdentificationCodeSequence ©) -{ - if (this != ©) - { - clear(); - EmptyDefaultSequence = copy.EmptyDefaultSequence; - /* create a copy of the internal sequence of items */ - Item *item = NULL; - OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); - const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); - while (current != last) - { - item = new Item(**current); - if (item != NULL) - { - SequenceOfItems.push_back(item); - } else { - /* memory exhausted, there is nothing we can do about it */ - break; - } - ++current; - } - CurrentItem = SequenceOfItems.begin(); - } - return *this; -} - - -DRTAdditionalRTROIIdentificationCodeSequence::~DRTAdditionalRTROIIdentificationCodeSequence() -{ - clear(); -} - - -void DRTAdditionalRTROIIdentificationCodeSequence::clear() -{ - if (!EmptyDefaultSequence) - { - CurrentItem = SequenceOfItems.begin(); - const OFListConstIterator(Item *) last = SequenceOfItems.end(); - /* delete all items and free memory */ - while (CurrentItem != last) - { - delete (*CurrentItem); - CurrentItem = SequenceOfItems.erase(CurrentItem); - } - /* make sure that the list is empty */ - SequenceOfItems.clear(); - CurrentItem = SequenceOfItems.end(); - } -} - - -OFBool DRTAdditionalRTROIIdentificationCodeSequence::isEmpty() -{ - return SequenceOfItems.empty(); -} - - -OFBool DRTAdditionalRTROIIdentificationCodeSequence::isValid() const -{ - return !EmptyDefaultSequence; -} - - -unsigned long DRTAdditionalRTROIIdentificationCodeSequence::getNumberOfItems() const -{ - return SequenceOfItems.size(); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoFirstItem() -{ - OFCondition result = EC_IllegalCall; - if (!SequenceOfItems.empty()) - { - CurrentItem = SequenceOfItems.begin(); - result = EC_Normal; - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoNextItem() -{ - OFCondition result = EC_IllegalCall; - if (CurrentItem != SequenceOfItems.end()) - { - ++CurrentItem; - result = EC_Normal; - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) -{ - OFCondition result = EC_IllegalCall; - if (!SequenceOfItems.empty()) - { - unsigned long idx = num + 1; - iterator = SequenceOfItems.begin(); - const OFListConstIterator(Item *) last = SequenceOfItems.end(); - while ((--idx > 0) && (iterator != last)) - ++iterator; - /* specified list item found? */ - if ((idx == 0) && (iterator != last)) - result = EC_Normal; - else - result = EC_IllegalParameter; - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const -{ - OFCondition result = EC_IllegalCall; - if (!SequenceOfItems.empty()) - { - unsigned long idx = num + 1; - iterator = SequenceOfItems.begin(); - const OFListConstIterator(Item *) last = SequenceOfItems.end(); - while ((--idx > 0) && (iterator != last)) - ++iterator; - /* specified list item found? */ - if ((idx == 0) && (iterator != last)) - result = EC_Normal; - else - result = EC_IllegalParameter; - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num) -{ - return gotoItem(num, CurrentItem); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem(Item *&item) const -{ - OFCondition result = EC_IllegalCall; - if (CurrentItem != SequenceOfItems.end()) - { - item = *CurrentItem; - result = EC_Normal; - } - return result; -} - - -DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem() -{ - if (CurrentItem != SequenceOfItems.end()) - return **CurrentItem; - else - return EmptyItem; -} - - -const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem() const -{ - if (CurrentItem != SequenceOfItems.end()) - return **CurrentItem; - else - return EmptyItem; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num, Item *&item) -{ - OFListIterator(Item *) iterator; - OFCondition result = gotoItem(num, iterator); - if (result.good()) - item = *iterator; - return result; -} - - -DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num) -{ - OFListIterator(Item *) iterator; - if (gotoItem(num, iterator).good()) - return **iterator; - else - return EmptyItem; -} - - -const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num) const -{ - OFListConstIterator(Item *) iterator; - if (gotoItem(num, iterator).good()) - return **iterator; - else - return EmptyItem; -} - - -DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::operator[](const unsigned long num) -{ - return getItem(num); -} - - -const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::operator[](const unsigned long num) const -{ - return getItem(num); -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::addItem(Item *&item) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultSequence) - { - item = new Item(); - if (item != NULL) - { - SequenceOfItems.push_back(item); - result = EC_Normal; - } else - result = EC_MemoryExhausted; - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::insertItem(const unsigned long pos, Item *&item) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultSequence) - { - OFListIterator(Item *) iterator; - result = gotoItem(pos, iterator); - if (result.good()) - { - item = new Item(); - if (item != NULL) - { - SequenceOfItems.insert(iterator, 1, item); - result = EC_Normal; - } else - result = EC_MemoryExhausted; - } else - result = addItem(item); - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::removeItem(const unsigned long pos) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultSequence) - { - OFListIterator(Item *) iterator; - if (gotoItem(pos, iterator).good()) - { - delete *iterator; - iterator = SequenceOfItems.erase(iterator); - result = EC_Normal; - } else - result = EC_IllegalParameter; - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::read(DcmItem &dataset, - const OFString &card, - const OFString &type, - const char *moduleName) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultSequence) - { - /* re-initialize object */ - clear(); - /* retrieve sequence element from dataset */ - DcmSequenceOfItems *sequence; - result = dataset.findAndGetSequence(DCM_AdditionalRTROIIdentificationCodeSequence, sequence); - if (sequence != NULL) - { - if (checkElementValue(*sequence, card, type, result, moduleName)) - { - DcmStack stack; - OFBool first = OFTrue; - /* iterate over all sequence items */ - while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) - { - DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); - if (ditem != NULL) - { - Item *item = new Item(); - if (item != NULL) - { - result = item->read(*ditem); - if (result.good()) - { - /* append new item to the end of the list */ - SequenceOfItems.push_back(item); - first = OFFalse; - } - } else - result = EC_MemoryExhausted; - } else - result = EC_CorruptedData; - } - } - } else { - DcmSequenceOfItems element(DCM_AdditionalRTROIIdentificationCodeSequence); - checkElementValue(element, card, type, result, moduleName); - } - } - return result; -} - - -OFCondition DRTAdditionalRTROIIdentificationCodeSequence::write(DcmItem &dataset, - const OFString &card, - const OFString &type, - const char *moduleName) -{ - OFCondition result = EC_IllegalCall; - if (!EmptyDefaultSequence) - { - result = EC_MemoryExhausted; - DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_AdditionalRTROIIdentificationCodeSequence); - if (sequence != NULL) - { - result = EC_Normal; - /* an empty optional sequence is not written */ - if ((type == "2") || !SequenceOfItems.empty()) - { - OFListIterator(Item *) iterator = SequenceOfItems.begin(); - const OFListConstIterator(Item *) last = SequenceOfItems.end(); - /* iterate over all sequence items */ - while (result.good() && (iterator != last)) - { - DcmItem *item = new DcmItem(); - if (item != NULL) - { - /* append new item to the end of the sequence */ - result = sequence->append(item); - if (result.good()) - { - result = (*iterator)->write(*item); - ++iterator; - } else - delete item; - } else - result = EC_MemoryExhausted; - } - if (result.good()) - { - /* insert sequence element into the dataset */ - result = dataset.insert(sequence, OFTrue /*replaceOld*/); - } - if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) - checkElementValue(*sequence, card, type, result, moduleName); - if (result.good()) - { - /* forget reference to sequence object (avoid deletion below) */ - sequence = NULL; - } - } - else if (type == "1") - { - /* empty type 1 sequence not allowed */ - result = RT_EC_InvalidValue; - if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) - checkElementValue(*sequence, card, type, result, moduleName); - } - /* delete sequence (if not inserted into the dataset) */ - delete sequence; - } - } - return result; -} - - -// end of source file diff --git a/dcmrt/libsrc/drtas1.cc b/dcmrt/libsrc/drtas1.cc index 4c06a738..233e266b 100644 --- a/dcmrt/libsrc/drtas1.cc +++ b/dcmrt/libsrc/drtas1.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicatorSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtas5.cc b/dcmrt/libsrc/drtas5.cc index 9f4901af..6c157b96 100644 --- a/dcmrt/libsrc/drtas5.cc +++ b/dcmrt/libsrc/drtas5.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicatorSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtas6.cc b/dcmrt/libsrc/drtas6.cc index 304bd0a2..af978455 100644 --- a/dcmrt/libsrc/drtas6.cc +++ b/dcmrt/libsrc/drtas6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicatorSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtas7.cc b/dcmrt/libsrc/drtas7.cc index 1abdea15..ad1c2502 100644 --- a/dcmrt/libsrc/drtas7.cc +++ b/dcmrt/libsrc/drtas7.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicatorSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtass.cc b/dcmrt/libsrc/drtass.cc index 5578b577..1a2d440e 100644 --- a/dcmrt/libsrc/drtass.cc +++ b/dcmrt/libsrc/drtass.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTApplicationSetupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtbads.cc b/dcmrt/libsrc/drtbads.cc index 55e4dee6..fde1984b 100644 --- a/dcmrt/libsrc/drtbads.cc +++ b/dcmrt/libsrc/drtbads.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBrachyAccessoryDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtbas.cc b/dcmrt/libsrc/drtbas.cc index 55a74972..bf640f35 100644 --- a/dcmrt/libsrc/drtbas.cc +++ b/dcmrt/libsrc/drtbas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContrastBolusAgentSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTContrastBolusAgentSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTContrastBolusAgentSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::Item::operat EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTContrastBolusAgentSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTContrastBolusAgentSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTContrastBolusAgentSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContrastBolusAgentSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ContrastBolusAgentSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ContrastBolusAgentSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ContrastBolusAgentSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ContrastBolusAgentSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ContrastBolusAgentSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ContrastBolusAgentSequence"); @@ -186,6 +192,7 @@ OFCondition DRTContrastBolusAgentSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContrastBolusAgentSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ContrastBolusAgentSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ContrastBolusAgentSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ContrastBolusAgentSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ContrastBolusAgentSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ContrastBolusAgentSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ContrastBolusAgentSequence"); @@ -303,6 +310,15 @@ OFCondition DRTContrastBolusAgentSequence::Item::getMappingResource(OFString &va } +OFCondition DRTContrastBolusAgentSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTContrastBolusAgentSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTContrastBolusAgentSequence::Item::setMappingResource(const OFStri } +OFCondition DRTContrastBolusAgentSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTContrastBolusAgentSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtbcps.cc b/dcmrt/libsrc/drtbcps.cc index 1eac2efb..e2b41471 100644 --- a/dcmrt/libsrc/drtbcps.cc +++ b/dcmrt/libsrc/drtbcps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBrachyControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtbl2.cc b/dcmrt/libsrc/drtbl2.cc index f86a6700..b3934e1e 100644 --- a/dcmrt/libsrc/drtbl2.cc +++ b/dcmrt/libsrc/drtbl2.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBlockSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -33,7 +33,8 @@ DRTBlockSequenceInRTBeamsModule::Item::Item(const OFBool emptyDefaultItem) BlockTrayID(DCM_BlockTrayID), BlockType(DCM_BlockType), MaterialID(DCM_MaterialID), - SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance) + SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance), + TrayAccessoryCode(DCM_TrayAccessoryCode) { } @@ -52,7 +53,8 @@ DRTBlockSequenceInRTBeamsModule::Item::Item(const Item ©) BlockTrayID(copy.BlockTrayID), BlockType(copy.BlockType), MaterialID(copy.MaterialID), - SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance) + SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance), + TrayAccessoryCode(copy.TrayAccessoryCode) { } @@ -80,6 +82,7 @@ DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::Item::op BlockType = copy.BlockType; MaterialID = copy.MaterialID; SourceToBlockTrayDistance = copy.SourceToBlockTrayDistance; + TrayAccessoryCode = copy.TrayAccessoryCode; } return *this; } @@ -91,6 +94,7 @@ void DRTBlockSequenceInRTBeamsModule::Item::clear() { /* clear all DICOM attributes */ BlockTrayID.clear(); + TrayAccessoryCode.clear(); AccessoryCode.clear(); SourceToBlockTrayDistance.clear(); BlockType.clear(); @@ -110,6 +114,7 @@ void DRTBlockSequenceInRTBeamsModule::Item::clear() OFBool DRTBlockSequenceInRTBeamsModule::Item::isEmpty() { return BlockTrayID.isEmpty() && + TrayAccessoryCode.isEmpty() && AccessoryCode.isEmpty() && SourceToBlockTrayDistance.isEmpty() && BlockType.isEmpty() && @@ -139,6 +144,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::read(DcmItem &item) /* re-initialize object */ clear(); getAndCheckElementFromDataset(item, BlockTrayID, "1", "3", "BlockSequence"); + getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "BlockSequence"); getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "BlockSequence"); getAndCheckElementFromDataset(item, SourceToBlockTrayDistance, "1", "2", "BlockSequence"); getAndCheckElementFromDataset(item, BlockType, "1", "1", "BlockSequence"); @@ -164,6 +170,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::write(DcmItem &item) { result = EC_Normal; addElementToDataset(result, item, new DcmShortString(BlockTrayID), "1", "3", "BlockSequence"); + addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "BlockSequence"); addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "BlockSequence"); addElementToDataset(result, item, new DcmDecimalString(SourceToBlockTrayDistance), "1", "2", "BlockSequence"); addElementToDataset(result, item, new DcmCodeString(BlockType), "1", "1", "BlockSequence"); @@ -361,6 +368,15 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::getSourceToBlockTrayDistance( } +OFCondition DRTBlockSequenceInRTBeamsModule::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(TrayAccessoryCode, value, pos); +} + + OFCondition DRTBlockSequenceInRTBeamsModule::Item::setAccessoryCode(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -530,6 +546,19 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::setSourceToBlockTrayDistance( } +OFCondition DRTBlockSequenceInRTBeamsModule::Item::setTrayAccessoryCode(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = TrayAccessoryCode.putOFStringArray(value); + } + return result; +} + + // --- sequence class --- DRTBlockSequenceInRTBeamsModule::DRTBlockSequenceInRTBeamsModule(const OFBool emptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbl5.cc b/dcmrt/libsrc/drtbl5.cc index 806f2901..84b20ec3 100644 --- a/dcmrt/libsrc/drtbl5.cc +++ b/dcmrt/libsrc/drtbl5.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBlockSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -32,7 +32,8 @@ DRTBlockSequenceInRTImageModule::Item::Item(const OFBool emptyDefaultItem) BlockTrayID(DCM_BlockTrayID), BlockType(DCM_BlockType), MaterialID(DCM_MaterialID), - SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance) + SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance), + TrayAccessoryCode(DCM_TrayAccessoryCode) { } @@ -50,7 +51,8 @@ DRTBlockSequenceInRTImageModule::Item::Item(const Item ©) BlockTrayID(copy.BlockTrayID), BlockType(copy.BlockType), MaterialID(copy.MaterialID), - SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance) + SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance), + TrayAccessoryCode(copy.TrayAccessoryCode) { } @@ -77,6 +79,7 @@ DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::Item::op BlockType = copy.BlockType; MaterialID = copy.MaterialID; SourceToBlockTrayDistance = copy.SourceToBlockTrayDistance; + TrayAccessoryCode = copy.TrayAccessoryCode; } return *this; } @@ -88,6 +91,7 @@ void DRTBlockSequenceInRTImageModule::Item::clear() { /* clear all DICOM attributes */ BlockTrayID.clear(); + TrayAccessoryCode.clear(); AccessoryCode.clear(); SourceToBlockTrayDistance.clear(); BlockType.clear(); @@ -106,6 +110,7 @@ void DRTBlockSequenceInRTImageModule::Item::clear() OFBool DRTBlockSequenceInRTImageModule::Item::isEmpty() { return BlockTrayID.isEmpty() && + TrayAccessoryCode.isEmpty() && AccessoryCode.isEmpty() && SourceToBlockTrayDistance.isEmpty() && BlockType.isEmpty() && @@ -134,6 +139,7 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::read(DcmItem &item) /* re-initialize object */ clear(); getAndCheckElementFromDataset(item, BlockTrayID, "1", "3", "BlockSequence"); + getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "BlockSequence"); getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "BlockSequence"); getAndCheckElementFromDataset(item, SourceToBlockTrayDistance, "1", "2", "BlockSequence"); getAndCheckElementFromDataset(item, BlockType, "1", "1", "BlockSequence"); @@ -158,6 +164,7 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::write(DcmItem &item) { result = EC_Normal; addElementToDataset(result, item, new DcmShortString(BlockTrayID), "1", "3", "BlockSequence"); + addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "BlockSequence"); addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "BlockSequence"); addElementToDataset(result, item, new DcmDecimalString(SourceToBlockTrayDistance), "1", "2", "BlockSequence"); addElementToDataset(result, item, new DcmCodeString(BlockType), "1", "1", "BlockSequence"); @@ -336,6 +343,15 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::getSourceToBlockTrayDistance( } +OFCondition DRTBlockSequenceInRTImageModule::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(TrayAccessoryCode, value, pos); +} + + OFCondition DRTBlockSequenceInRTImageModule::Item::setAccessoryCode(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -492,6 +508,19 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::setSourceToBlockTrayDistance( } +OFCondition DRTBlockSequenceInRTImageModule::Item::setTrayAccessoryCode(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = TrayAccessoryCode.putOFStringArray(value); + } + return result; +} + + // --- sequence class --- DRTBlockSequenceInRTImageModule::DRTBlockSequenceInRTImageModule(const OFBool emptyDefaultSequence) diff --git a/dcmrt/libsrc/drtbldls.cc b/dcmrt/libsrc/drtbldls.cc index 560165cd..1c3cb120 100644 --- a/dcmrt/libsrc/drtbldls.cc +++ b/dcmrt/libsrc/drtbldls.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDeviceLeafPairsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtbldps.cc b/dcmrt/libsrc/drtbldps.cc index 07a8ef8e..ab394a72 100644 --- a/dcmrt/libsrc/drtbldps.cc +++ b/dcmrt/libsrc/drtbldps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDevicePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtblds1.cc b/dcmrt/libsrc/drtblds1.cc index 1cef0f20..4d2e43a6 100644 --- a/dcmrt/libsrc/drtblds1.cc +++ b/dcmrt/libsrc/drtblds1.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDeviceSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtblds5.cc b/dcmrt/libsrc/drtblds5.cc index 714aa7b5..8949c674 100644 --- a/dcmrt/libsrc/drtblds5.cc +++ b/dcmrt/libsrc/drtblds5.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDeviceSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtblds6.cc b/dcmrt/libsrc/drtblds6.cc index b5719c40..5b732b72 100644 --- a/dcmrt/libsrc/drtblds6.cc +++ b/dcmrt/libsrc/drtblds6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDeviceSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtbldts.cc b/dcmrt/libsrc/drtbldts.cc index 0a5a5016..4f47767c 100644 --- a/dcmrt/libsrc/drtbldts.cc +++ b/dcmrt/libsrc/drtbldts.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamLimitingDeviceToleranceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtbrcss.cc b/dcmrt/libsrc/drtbrcss.cc index 2f23b0d1..121bf3f0 100644 --- a/dcmrt/libsrc/drtbrcss.cc +++ b/dcmrt/libsrc/drtbrcss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBreedRegistryCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTBreedRegistryCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTBreedRegistryCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::Item::operator EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTBreedRegistryCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTBreedRegistryCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTBreedRegistryCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "BreedRegistryCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "BreedRegistryCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "BreedRegistryCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "BreedRegistryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "BreedRegistryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "BreedRegistryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "BreedRegistryCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTBreedRegistryCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "BreedRegistryCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "BreedRegistryCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "BreedRegistryCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "BreedRegistryCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "BreedRegistryCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "BreedRegistryCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "BreedRegistryCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResource(OFString &val } +OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResource(const OFStrin } +OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtbrdrs.cc b/dcmrt/libsrc/drtbrdrs.cc index 98b584bc..e8bb749f 100644 --- a/dcmrt/libsrc/drtbrdrs.cc +++ b/dcmrt/libsrc/drtbrdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBrachyReferencedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtbrs.cc b/dcmrt/libsrc/drtbrs.cc index 67f54168..925322e5 100644 --- a/dcmrt/libsrc/drtbrs.cc +++ b/dcmrt/libsrc/drtbrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBreedRegistrationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtbs.cc b/dcmrt/libsrc/drtbs.cc index f9e42e8c..9967a196 100644 --- a/dcmrt/libsrc/drtbs.cc +++ b/dcmrt/libsrc/drtbs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtbss.cc b/dcmrt/libsrc/drtbss.cc index d72e2d2d..b6c873c1 100644 --- a/dcmrt/libsrc/drtbss.cc +++ b/dcmrt/libsrc/drtbss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTBlockSlabSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtbvcps.cc b/dcmrt/libsrc/drtbvcps.cc index 857a7c71..2ec60895 100644 --- a/dcmrt/libsrc/drtbvcps.cc +++ b/dcmrt/libsrc/drtbvcps.cc @@ -6,9 +6,8 @@ * * Source file for class DRTBeamDoseVerificationControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 - * Last modified on 2016-02-20 by J. Riesmeier + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -25,7 +24,7 @@ DRTBeamDoseVerificationControlPointSequence::Item::Item(const OFBool emptyDefaul AverageBeamDosePointDepth(DCM_AverageBeamDosePointDepth), AverageBeamDosePointEquivalentDepth(DCM_AverageBeamDosePointEquivalentDepth), AverageBeamDosePointSSD(DCM_AverageBeamDosePointSSD), - AverageBeamDosePointSourceToExternalContourSurfaceDistance(DCM_AverageBeamDosePointSourceToExternalContourDistance), + AverageBeamDosePointSourceToExternalContourDistance(DCM_AverageBeamDosePointSourceToExternalContourDistance), CumulativeMetersetWeight(DCM_CumulativeMetersetWeight), ReferencedControlPointIndex(DCM_ReferencedControlPointIndex) { @@ -37,7 +36,7 @@ DRTBeamDoseVerificationControlPointSequence::Item::Item(const Item ©) AverageBeamDosePointDepth(copy.AverageBeamDosePointDepth), AverageBeamDosePointEquivalentDepth(copy.AverageBeamDosePointEquivalentDepth), AverageBeamDosePointSSD(copy.AverageBeamDosePointSSD), - AverageBeamDosePointSourceToExternalContourSurfaceDistance(copy.AverageBeamDosePointSourceToExternalContourSurfaceDistance), + AverageBeamDosePointSourceToExternalContourDistance(copy.AverageBeamDosePointSourceToExternalContourDistance), CumulativeMetersetWeight(copy.CumulativeMetersetWeight), ReferencedControlPointIndex(copy.ReferencedControlPointIndex) { @@ -57,7 +56,7 @@ DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationContro AverageBeamDosePointDepth = copy.AverageBeamDosePointDepth; AverageBeamDosePointEquivalentDepth = copy.AverageBeamDosePointEquivalentDepth; AverageBeamDosePointSSD = copy.AverageBeamDosePointSSD; - AverageBeamDosePointSourceToExternalContourSurfaceDistance = copy.AverageBeamDosePointSourceToExternalContourSurfaceDistance; + AverageBeamDosePointSourceToExternalContourDistance = copy.AverageBeamDosePointSourceToExternalContourDistance; CumulativeMetersetWeight = copy.CumulativeMetersetWeight; ReferencedControlPointIndex = copy.ReferencedControlPointIndex; } @@ -75,7 +74,7 @@ void DRTBeamDoseVerificationControlPointSequence::Item::clear() AverageBeamDosePointDepth.clear(); AverageBeamDosePointEquivalentDepth.clear(); AverageBeamDosePointSSD.clear(); - AverageBeamDosePointSourceToExternalContourSurfaceDistance.clear(); + AverageBeamDosePointSourceToExternalContourDistance.clear(); } } @@ -87,7 +86,7 @@ OFBool DRTBeamDoseVerificationControlPointSequence::Item::isEmpty() AverageBeamDosePointDepth.isEmpty() && AverageBeamDosePointEquivalentDepth.isEmpty() && AverageBeamDosePointSSD.isEmpty() && - AverageBeamDosePointSourceToExternalContourSurfaceDistance.isEmpty(); + AverageBeamDosePointSourceToExternalContourDistance.isEmpty(); } @@ -109,7 +108,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::read(DcmItem &ite getAndCheckElementFromDataset(item, AverageBeamDosePointDepth, "1", "2C", "BeamDoseVerificationControlPointSequence"); getAndCheckElementFromDataset(item, AverageBeamDosePointEquivalentDepth, "1", "2C", "BeamDoseVerificationControlPointSequence"); getAndCheckElementFromDataset(item, AverageBeamDosePointSSD, "1", "2C", "BeamDoseVerificationControlPointSequence"); - getAndCheckElementFromDataset(item, AverageBeamDosePointSourceToExternalContourSurfaceDistance, "1", "3", "BeamDoseVerificationControlPointSequence"); + getAndCheckElementFromDataset(item, AverageBeamDosePointSourceToExternalContourDistance, "1", "3", "BeamDoseVerificationControlPointSequence"); result = EC_Normal; } return result; @@ -127,7 +126,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::write(DcmItem &it addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointDepth), "1", "2C", "BeamDoseVerificationControlPointSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointEquivalentDepth), "1", "2C", "BeamDoseVerificationControlPointSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSSD), "1", "2C", "BeamDoseVerificationControlPointSequence"); - addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSourceToExternalContourSurfaceDistance), "1", "3", "BeamDoseVerificationControlPointSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSourceToExternalContourDistance), "1", "3", "BeamDoseVerificationControlPointSequence"); } return result; } @@ -160,12 +159,12 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDos } -OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDosePointSourceToExternalContourSurfaceDistance(Float32 &value, const unsigned long pos) const +OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDosePointSourceToExternalContourDistance(Float32 &value, const unsigned long pos) const { if (EmptyDefaultItem) return EC_IllegalCall; else - return OFconst_cast(DcmFloatingPointSingle &, AverageBeamDosePointSourceToExternalContourSurfaceDistance).getFloat32(value, pos); + return OFconst_cast(DcmFloatingPointSingle &, AverageBeamDosePointSourceToExternalContourDistance).getFloat32(value, pos); } @@ -232,12 +231,12 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDos } -OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDosePointSourceToExternalContourSurfaceDistance(const Float32 value, const unsigned long pos) +OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDosePointSourceToExternalContourDistance(const Float32 value, const unsigned long pos) { if (EmptyDefaultItem) return EC_IllegalCall; else - return AverageBeamDosePointSourceToExternalContourSurfaceDistance.putFloat32(value, pos); + return AverageBeamDosePointSourceToExternalContourDistance.putFloat32(value, pos); } diff --git a/dcmrt/libsrc/drtcbars.cc b/dcmrt/libsrc/drtcbars.cc index bc815f02..20a763d0 100644 --- a/dcmrt/libsrc/drtcbars.cc +++ b/dcmrt/libsrc/drtcbars.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContrastBolusAdministrationRouteSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -35,6 +35,7 @@ DRTContrastBolusAdministrationRouteSequence::Item::Item(const OFBool emptyDefaul EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -57,6 +58,7 @@ DRTContrastBolusAdministrationRouteSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -87,6 +89,7 @@ DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministratio EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -110,6 +113,7 @@ void DRTContrastBolusAdministrationRouteSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -132,6 +136,7 @@ OFBool DRTContrastBolusAdministrationRouteSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -164,6 +169,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::read(DcmItem &ite getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContrastBolusAdministrationRouteSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ContrastBolusAdministrationRouteSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ContrastBolusAdministrationRouteSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ContrastBolusAdministrationRouteSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ContrastBolusAdministrationRouteSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ContrastBolusAdministrationRouteSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ContrastBolusAdministrationRouteSequence"); @@ -192,6 +198,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::write(DcmItem &it addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContrastBolusAdministrationRouteSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ContrastBolusAdministrationRouteSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ContrastBolusAdministrationRouteSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ContrastBolusAdministrationRouteSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ContrastBolusAdministrationRouteSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ContrastBolusAdministrationRouteSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ContrastBolusAdministrationRouteSequence"); @@ -310,6 +317,15 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourc } +OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -484,6 +500,19 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourc } +OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtccs.cc b/dcmrt/libsrc/drtccs.cc index 979f490e..8732fdb5 100644 --- a/dcmrt/libsrc/drtccs.cc +++ b/dcmrt/libsrc/drtccs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTConceptCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTConceptCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTConceptCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTConceptCodeSequence::Item &DRTConceptCodeSequence::Item::operator=(const Item EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTConceptCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTConceptCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTConceptCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ConceptCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ConceptCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ConceptCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ConceptCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ConceptCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ConceptCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ConceptCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTConceptCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ConceptCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ConceptCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ConceptCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ConceptCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ConceptCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ConceptCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ConceptCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTConceptCodeSequence::Item::getMappingResource(OFString &value, co } +OFCondition DRTConceptCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTConceptCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTConceptCodeSequence::Item::setMappingResource(const OFString &val } +OFCondition DRTConceptCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTConceptCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtcctus.cc b/dcmrt/libsrc/drtcctus.cc index 731881ad..dc1f3e9b 100644 --- a/dcmrt/libsrc/drtcctus.cc +++ b/dcmrt/libsrc/drtcctus.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTConsentForClinicalTrialUseSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcdrs.cc b/dcmrt/libsrc/drtcdrs.cc index 5ffe6cfc..b8f97519 100644 --- a/dcmrt/libsrc/drtcdrs.cc +++ b/dcmrt/libsrc/drtcdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtces.cc b/dcmrt/libsrc/drtces.cc index a0cee02d..fc2d392c 100644 --- a/dcmrt/libsrc/drtces.cc +++ b/dcmrt/libsrc/drtces.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContributingEquipmentSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcgis.cc b/dcmrt/libsrc/drtcgis.cc new file mode 100644 index 00000000..2ef19735 --- /dev/null +++ b/dcmrt/libsrc/drtcgis.cc @@ -0,0 +1,631 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTContextGroupIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtcgis.h" + + +// --- item class --- + +DRTContextGroupIdentificationSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + ContextGroupVersion(DCM_ContextGroupVersion), + ContextIdentifier(DCM_ContextIdentifier), + ContextUID(DCM_ContextUID), + MappingResource(DCM_MappingResource) +{ +} + + +DRTContextGroupIdentificationSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + ContextGroupVersion(copy.ContextGroupVersion), + ContextIdentifier(copy.ContextIdentifier), + ContextUID(copy.ContextUID), + MappingResource(copy.MappingResource) +{ +} + + +DRTContextGroupIdentificationSequence::Item::~Item() +{ +} + + +DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + ContextGroupVersion = copy.ContextGroupVersion; + ContextIdentifier = copy.ContextIdentifier; + ContextUID = copy.ContextUID; + MappingResource = copy.MappingResource; + } + return *this; +} + + +void DRTContextGroupIdentificationSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + ContextIdentifier.clear(); + ContextUID.clear(); + MappingResource.clear(); + ContextGroupVersion.clear(); + } +} + + +OFBool DRTContextGroupIdentificationSequence::Item::isEmpty() +{ + return ContextIdentifier.isEmpty() && + ContextUID.isEmpty() && + MappingResource.isEmpty() && + ContextGroupVersion.isEmpty(); +} + + +OFBool DRTContextGroupIdentificationSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, ContextIdentifier, "1", "1", "ContextGroupIdentificationSequence"); + getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContextGroupIdentificationSequence"); + getAndCheckElementFromDataset(item, MappingResource, "1", "1", "ContextGroupIdentificationSequence"); + getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1", "ContextGroupIdentificationSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "1", "ContextGroupIdentificationSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContextGroupIdentificationSequence"); + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1", "ContextGroupIdentificationSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1", "ContextGroupIdentificationSequence"); + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupVersion, value, pos); +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextIdentifier, value, pos); +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::getContextUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextUID, value, pos); +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextIdentifier.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::setContextUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTContextGroupIdentificationSequence::DRTContextGroupIdentificationSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTContextGroupIdentificationSequence::DRTContextGroupIdentificationSequence(const DRTContextGroupIdentificationSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTContextGroupIdentificationSequence &DRTContextGroupIdentificationSequence::operator=(const DRTContextGroupIdentificationSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTContextGroupIdentificationSequence::~DRTContextGroupIdentificationSequence() +{ + clear(); +} + + +void DRTContextGroupIdentificationSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTContextGroupIdentificationSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTContextGroupIdentificationSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTContextGroupIdentificationSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTContextGroupIdentificationSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTContextGroupIdentificationSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTContextGroupIdentificationSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTContextGroupIdentificationSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_ContextGroupIdentificationSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_ContextGroupIdentificationSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTContextGroupIdentificationSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_ContextGroupIdentificationSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtchs.cc b/dcmrt/libsrc/drtchs.cc index a216b012..67699b0d 100644 --- a/dcmrt/libsrc/drtchs.cc +++ b/dcmrt/libsrc/drtchs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTChannelSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcims.cc b/dcmrt/libsrc/drtcims.cc index d02068df..a8fd6515 100644 --- a/dcmrt/libsrc/drtcims.cc +++ b/dcmrt/libsrc/drtcims.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContentItemModifierSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcis.cc b/dcmrt/libsrc/drtcis.cc index db289e69..812bb216 100644 --- a/dcmrt/libsrc/drtcis.cc +++ b/dcmrt/libsrc/drtcis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContourImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcncs.cc b/dcmrt/libsrc/drtcncs.cc index 39866644..10c9edce 100644 --- a/dcmrt/libsrc/drtcncs.cc +++ b/dcmrt/libsrc/drtcncs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTConceptNameCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTConceptNameCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTConceptNameCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::Item::operator=(co EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTConceptNameCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTConceptNameCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTConceptNameCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ConceptNameCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ConceptNameCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ConceptNameCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ConceptNameCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ConceptNameCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ConceptNameCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ConceptNameCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTConceptNameCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ConceptNameCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ConceptNameCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ConceptNameCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ConceptNameCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ConceptNameCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ConceptNameCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ConceptNameCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTConceptNameCodeSequence::Item::getMappingResource(OFString &value } +OFCondition DRTConceptNameCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTConceptNameCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTConceptNameCodeSequence::Item::setMappingResource(const OFString } +OFCondition DRTConceptNameCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTConceptNameCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtcos.cc b/dcmrt/libsrc/drtcos.cc index d2b31cf3..732b0592 100644 --- a/dcmrt/libsrc/drtcos.cc +++ b/dcmrt/libsrc/drtcos.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -37,7 +37,8 @@ DRTCompensatorSequence::Item::Item(const OFBool emptyDefaultItem) CompensatorType(DCM_CompensatorType), MaterialID(DCM_MaterialID), SourceToCompensatorDistance(DCM_SourceToCompensatorDistance), - SourceToCompensatorTrayDistance(DCM_SourceToCompensatorTrayDistance) + SourceToCompensatorTrayDistance(DCM_SourceToCompensatorTrayDistance), + TrayAccessoryCode(DCM_TrayAccessoryCode) { } @@ -60,7 +61,8 @@ DRTCompensatorSequence::Item::Item(const Item ©) CompensatorType(copy.CompensatorType), MaterialID(copy.MaterialID), SourceToCompensatorDistance(copy.SourceToCompensatorDistance), - SourceToCompensatorTrayDistance(copy.SourceToCompensatorTrayDistance) + SourceToCompensatorTrayDistance(copy.SourceToCompensatorTrayDistance), + TrayAccessoryCode(copy.TrayAccessoryCode) { } @@ -92,6 +94,7 @@ DRTCompensatorSequence::Item &DRTCompensatorSequence::Item::operator=(const Item MaterialID = copy.MaterialID; SourceToCompensatorDistance = copy.SourceToCompensatorDistance; SourceToCompensatorTrayDistance = copy.SourceToCompensatorTrayDistance; + TrayAccessoryCode = copy.TrayAccessoryCode; } return *this; } @@ -109,6 +112,7 @@ void DRTCompensatorSequence::Item::clear() CompensatorID.clear(); AccessoryCode.clear(); CompensatorTrayID.clear(); + TrayAccessoryCode.clear(); SourceToCompensatorTrayDistance.clear(); CompensatorDivergence.clear(); CompensatorMountingPosition.clear(); @@ -132,6 +136,7 @@ OFBool DRTCompensatorSequence::Item::isEmpty() CompensatorID.isEmpty() && AccessoryCode.isEmpty() && CompensatorTrayID.isEmpty() && + TrayAccessoryCode.isEmpty() && SourceToCompensatorTrayDistance.isEmpty() && CompensatorDivergence.isEmpty() && CompensatorMountingPosition.isEmpty() && @@ -165,6 +170,7 @@ OFCondition DRTCompensatorSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, CompensatorID, "1", "3", "CompensatorSequence"); getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "CompensatorSequence"); getAndCheckElementFromDataset(item, CompensatorTrayID, "1", "3", "CompensatorSequence"); + getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "CompensatorSequence"); getAndCheckElementFromDataset(item, SourceToCompensatorTrayDistance, "1", "2", "CompensatorSequence"); getAndCheckElementFromDataset(item, CompensatorDivergence, "1", "3", "CompensatorSequence"); getAndCheckElementFromDataset(item, CompensatorMountingPosition, "1", "3", "CompensatorSequence"); @@ -194,6 +200,7 @@ OFCondition DRTCompensatorSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmShortString(CompensatorID), "1", "3", "CompensatorSequence"); addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "CompensatorSequence"); addElementToDataset(result, item, new DcmShortString(CompensatorTrayID), "1", "3", "CompensatorSequence"); + addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "CompensatorSequence"); addElementToDataset(result, item, new DcmDecimalString(SourceToCompensatorTrayDistance), "1", "2", "CompensatorSequence"); addElementToDataset(result, item, new DcmCodeString(CompensatorDivergence), "1", "3", "CompensatorSequence"); addElementToDataset(result, item, new DcmCodeString(CompensatorMountingPosition), "1", "3", "CompensatorSequence"); @@ -488,6 +495,15 @@ OFCondition DRTCompensatorSequence::Item::getSourceToCompensatorTrayDistance(Flo } +OFCondition DRTCompensatorSequence::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(TrayAccessoryCode, value, pos); +} + + OFCondition DRTCompensatorSequence::Item::setAccessoryCode(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -709,6 +725,19 @@ OFCondition DRTCompensatorSequence::Item::setSourceToCompensatorTrayDistance(con } +OFCondition DRTCompensatorSequence::Item::setTrayAccessoryCode(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = TrayAccessoryCode.putOFStringArray(value); + } + return result; +} + + // --- sequence class --- DRTCompensatorSequence::DRTCompensatorSequence(const OFBool emptyDefaultSequence) diff --git a/dcmrt/libsrc/drtcpas.cc b/dcmrt/libsrc/drtcpas.cc index 09b601ce..bd92f137 100644 --- a/dcmrt/libsrc/drtcpas.cc +++ b/dcmrt/libsrc/drtcpas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTCorrectedParameterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcpis.cc b/dcmrt/libsrc/drtcpis.cc index 8ca6f86f..b2bba6fb 100644 --- a/dcmrt/libsrc/drtcpis.cc +++ b/dcmrt/libsrc/drtcpis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTConsultingPhysicianIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcps.cc b/dcmrt/libsrc/drtcps.cc index c3d295a1..554e4a8e 100644 --- a/dcmrt/libsrc/drtcps.cc +++ b/dcmrt/libsrc/drtcps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcs.cc b/dcmrt/libsrc/drtcs.cc index c39b275c..b2fbd254 100644 --- a/dcmrt/libsrc/drtcs.cc +++ b/dcmrt/libsrc/drtcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTContourSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcsas.cc b/dcmrt/libsrc/drtcsas.cc index c9bb6d26..0932c21a 100644 --- a/dcmrt/libsrc/drtcsas.cc +++ b/dcmrt/libsrc/drtcsas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTConversionSourceAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcshs.cc b/dcmrt/libsrc/drtcshs.cc index 4fc8d7be..59347235 100644 --- a/dcmrt/libsrc/drtcshs.cc +++ b/dcmrt/libsrc/drtcshs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTChannelShieldSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcsis.cc b/dcmrt/libsrc/drtcsis.cc index 7504daff..b34ba9ab 100644 --- a/dcmrt/libsrc/drtcsis.cc +++ b/dcmrt/libsrc/drtcsis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTCodingSchemeIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtcss.cc b/dcmrt/libsrc/drtcss.cc index 6e2b1e40..dbdbdcfa 100644 --- a/dcmrt/libsrc/drtcss.cc +++ b/dcmrt/libsrc/drtcss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTChannelSourceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTChannelSourceSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTChannelSourceSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTChannelSourceSequence::Item &DRTChannelSourceSequence::Item::operator=(const EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTChannelSourceSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTChannelSourceSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTChannelSourceSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ChannelSourceSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ChannelSourceSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ChannelSourceSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ChannelSourceSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ChannelSourceSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ChannelSourceSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ChannelSourceSequence"); @@ -186,6 +192,7 @@ OFCondition DRTChannelSourceSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ChannelSourceSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ChannelSourceSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ChannelSourceSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ChannelSourceSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ChannelSourceSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ChannelSourceSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ChannelSourceSequence"); @@ -303,6 +310,15 @@ OFCondition DRTChannelSourceSequence::Item::getMappingResource(OFString &value, } +OFCondition DRTChannelSourceSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTChannelSourceSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTChannelSourceSequence::Item::setMappingResource(const OFString &v } +OFCondition DRTChannelSourceSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTChannelSourceSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtdcs.cc b/dcmrt/libsrc/drtdcs.cc index 736bd6d3..f1c78414 100644 --- a/dcmrt/libsrc/drtdcs.cc +++ b/dcmrt/libsrc/drtdcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDerivationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTDerivationCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTDerivationCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::Item::operator=(cons EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTDerivationCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTDerivationCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTDerivationCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DerivationCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DerivationCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DerivationCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DerivationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DerivationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DerivationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DerivationCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTDerivationCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DerivationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DerivationCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DerivationCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DerivationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DerivationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DerivationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DerivationCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTDerivationCodeSequence::Item::getMappingResource(OFString &value, } +OFCondition DRTDerivationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTDerivationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTDerivationCodeSequence::Item::setMappingResource(const OFString & } +OFCondition DRTDerivationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTDerivationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtdddps.cc b/dcmrt/libsrc/drtdddps.cc new file mode 100644 index 00000000..28d9dddc --- /dev/null +++ b/dcmrt/libsrc/drtdddps.cc @@ -0,0 +1,644 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTDeliveredDepthDoseParametersSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtdddps.h" + + +// --- item class --- + +DRTDeliveredDepthDoseParametersSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + DeliveredDistalDepth(DCM_DeliveredDistalDepth), + DeliveredDistalDepthFraction(DCM_DeliveredDistalDepthFraction), + DeliveredNominalRangeModulatedRegionDepths(DCM_DeliveredNominalRangeModulatedRegionDepths), + DeliveredNominalRangeModulationFractions(DCM_DeliveredNominalRangeModulationFractions), + DeliveredReferenceDoseDefinition(DCM_DeliveredReferenceDoseDefinition) +{ +} + + +DRTDeliveredDepthDoseParametersSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + DeliveredDistalDepth(copy.DeliveredDistalDepth), + DeliveredDistalDepthFraction(copy.DeliveredDistalDepthFraction), + DeliveredNominalRangeModulatedRegionDepths(copy.DeliveredNominalRangeModulatedRegionDepths), + DeliveredNominalRangeModulationFractions(copy.DeliveredNominalRangeModulationFractions), + DeliveredReferenceDoseDefinition(copy.DeliveredReferenceDoseDefinition) +{ +} + + +DRTDeliveredDepthDoseParametersSequence::Item::~Item() +{ +} + + +DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + DeliveredDistalDepth = copy.DeliveredDistalDepth; + DeliveredDistalDepthFraction = copy.DeliveredDistalDepthFraction; + DeliveredNominalRangeModulatedRegionDepths = copy.DeliveredNominalRangeModulatedRegionDepths; + DeliveredNominalRangeModulationFractions = copy.DeliveredNominalRangeModulationFractions; + DeliveredReferenceDoseDefinition = copy.DeliveredReferenceDoseDefinition; + } + return *this; +} + + +void DRTDeliveredDepthDoseParametersSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + DeliveredReferenceDoseDefinition.clear(); + DeliveredDistalDepth.clear(); + DeliveredDistalDepthFraction.clear(); + DeliveredNominalRangeModulatedRegionDepths.clear(); + DeliveredNominalRangeModulationFractions.clear(); + } +} + + +OFBool DRTDeliveredDepthDoseParametersSequence::Item::isEmpty() +{ + return DeliveredReferenceDoseDefinition.isEmpty() && + DeliveredDistalDepth.isEmpty() && + DeliveredDistalDepthFraction.isEmpty() && + DeliveredNominalRangeModulatedRegionDepths.isEmpty() && + DeliveredNominalRangeModulationFractions.isEmpty(); +} + + +OFBool DRTDeliveredDepthDoseParametersSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, DeliveredReferenceDoseDefinition, "1", "1", "DeliveredDepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DeliveredDistalDepth, "1", "1", "DeliveredDepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DeliveredDistalDepthFraction, "1", "1", "DeliveredDepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DeliveredNominalRangeModulatedRegionDepths, "2", "1C", "DeliveredDepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DeliveredNominalRangeModulationFractions, "2", "1C", "DeliveredDepthDoseParametersSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmCodeString(DeliveredReferenceDoseDefinition), "1", "1", "DeliveredDepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredDistalDepth), "1", "1", "DeliveredDepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredDistalDepthFraction), "1", "1", "DeliveredDepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredNominalRangeModulatedRegionDepths), "2", "1C", "DeliveredDepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredNominalRangeModulationFractions), "2", "1C", "DeliveredDepthDoseParametersSequence"); + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredDistalDepth(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DeliveredDistalDepth).getFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredDistalDepthFraction(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DeliveredDistalDepthFraction).getFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DeliveredNominalRangeModulatedRegionDepths).getFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredNominalRangeModulationFractions(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DeliveredNominalRangeModulationFractions).getFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredReferenceDoseDefinition(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(DeliveredReferenceDoseDefinition, value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredDistalDepth(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DeliveredDistalDepth.putFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredDistalDepthFraction(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DeliveredDistalDepthFraction.putFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DeliveredNominalRangeModulatedRegionDepths.putFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredNominalRangeModulationFractions(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DeliveredNominalRangeModulationFractions.putFloat32(value, pos); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredReferenceDoseDefinition(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = DeliveredReferenceDoseDefinition.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTDeliveredDepthDoseParametersSequence::DRTDeliveredDepthDoseParametersSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTDeliveredDepthDoseParametersSequence::DRTDeliveredDepthDoseParametersSequence(const DRTDeliveredDepthDoseParametersSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTDeliveredDepthDoseParametersSequence &DRTDeliveredDepthDoseParametersSequence::operator=(const DRTDeliveredDepthDoseParametersSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTDeliveredDepthDoseParametersSequence::~DRTDeliveredDepthDoseParametersSequence() +{ + clear(); +} + + +void DRTDeliveredDepthDoseParametersSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTDeliveredDepthDoseParametersSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTDeliveredDepthDoseParametersSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTDeliveredDepthDoseParametersSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_DeliveredDepthDoseParametersSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_DeliveredDepthDoseParametersSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTDeliveredDepthDoseParametersSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_DeliveredDepthDoseParametersSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtddps.cc b/dcmrt/libsrc/drtddps.cc new file mode 100644 index 00000000..b459c0d0 --- /dev/null +++ b/dcmrt/libsrc/drtddps.cc @@ -0,0 +1,644 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTDepthDoseParametersSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtddps.h" + + +// --- item class --- + +DRTDepthDoseParametersSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + DistalDepth(DCM_DistalDepth), + DistalDepthFraction(DCM_DistalDepthFraction), + NominalRangeModulatedRegionDepths(DCM_NominalRangeModulatedRegionDepths), + NominalRangeModulationFractions(DCM_NominalRangeModulationFractions), + ReferenceDoseDefinition(DCM_ReferenceDoseDefinition) +{ +} + + +DRTDepthDoseParametersSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + DistalDepth(copy.DistalDepth), + DistalDepthFraction(copy.DistalDepthFraction), + NominalRangeModulatedRegionDepths(copy.NominalRangeModulatedRegionDepths), + NominalRangeModulationFractions(copy.NominalRangeModulationFractions), + ReferenceDoseDefinition(copy.ReferenceDoseDefinition) +{ +} + + +DRTDepthDoseParametersSequence::Item::~Item() +{ +} + + +DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + DistalDepth = copy.DistalDepth; + DistalDepthFraction = copy.DistalDepthFraction; + NominalRangeModulatedRegionDepths = copy.NominalRangeModulatedRegionDepths; + NominalRangeModulationFractions = copy.NominalRangeModulationFractions; + ReferenceDoseDefinition = copy.ReferenceDoseDefinition; + } + return *this; +} + + +void DRTDepthDoseParametersSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + ReferenceDoseDefinition.clear(); + DistalDepth.clear(); + DistalDepthFraction.clear(); + NominalRangeModulatedRegionDepths.clear(); + NominalRangeModulationFractions.clear(); + } +} + + +OFBool DRTDepthDoseParametersSequence::Item::isEmpty() +{ + return ReferenceDoseDefinition.isEmpty() && + DistalDepth.isEmpty() && + DistalDepthFraction.isEmpty() && + NominalRangeModulatedRegionDepths.isEmpty() && + NominalRangeModulationFractions.isEmpty(); +} + + +OFBool DRTDepthDoseParametersSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTDepthDoseParametersSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, ReferenceDoseDefinition, "1", "1", "DepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DistalDepth, "1", "1", "DepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, DistalDepthFraction, "1", "1", "DepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, NominalRangeModulatedRegionDepths, "2", "1C", "DepthDoseParametersSequence"); + getAndCheckElementFromDataset(item, NominalRangeModulationFractions, "2", "1C", "DepthDoseParametersSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmCodeString(ReferenceDoseDefinition), "1", "1", "DepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DistalDepth), "1", "1", "DepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(DistalDepthFraction), "1", "1", "DepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(NominalRangeModulatedRegionDepths), "2", "1C", "DepthDoseParametersSequence"); + addElementToDataset(result, item, new DcmFloatingPointSingle(NominalRangeModulationFractions), "2", "1C", "DepthDoseParametersSequence"); + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::Item::getDistalDepth(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DistalDepth).getFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::getDistalDepthFraction(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, DistalDepthFraction).getFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::getNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, NominalRangeModulatedRegionDepths).getFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::getNominalRangeModulationFractions(Float32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointSingle &, NominalRangeModulationFractions).getFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::getReferenceDoseDefinition(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ReferenceDoseDefinition, value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::setDistalDepth(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DistalDepth.putFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::setDistalDepthFraction(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DistalDepthFraction.putFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::setNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return NominalRangeModulatedRegionDepths.putFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::setNominalRangeModulationFractions(const Float32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return NominalRangeModulationFractions.putFloat32(value, pos); +} + + +OFCondition DRTDepthDoseParametersSequence::Item::setReferenceDoseDefinition(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ReferenceDoseDefinition.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTDepthDoseParametersSequence::DRTDepthDoseParametersSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTDepthDoseParametersSequence::DRTDepthDoseParametersSequence(const DRTDepthDoseParametersSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTDepthDoseParametersSequence &DRTDepthDoseParametersSequence::operator=(const DRTDepthDoseParametersSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTDepthDoseParametersSequence::~DRTDepthDoseParametersSequence() +{ + clear(); +} + + +void DRTDepthDoseParametersSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTDepthDoseParametersSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTDepthDoseParametersSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTDepthDoseParametersSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTDepthDoseParametersSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTDepthDoseParametersSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTDepthDoseParametersSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTDepthDoseParametersSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_DepthDoseParametersSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_DepthDoseParametersSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTDepthDoseParametersSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_DepthDoseParametersSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtdias.cc b/dcmrt/libsrc/drtdias.cc index 70d3afba..ae0d9a81 100644 --- a/dcmrt/libsrc/drtdias.cc +++ b/dcmrt/libsrc/drtdias.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDeidentificationActionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtdimcs.cc b/dcmrt/libsrc/drtdimcs.cc index 05fcc5b6..b1d056c9 100644 --- a/dcmrt/libsrc/drtdimcs.cc +++ b/dcmrt/libsrc/drtdimcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDeidentificationMethodCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTDeidentificationMethodCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTDeidentificationMethodCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequen EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTDeidentificationMethodCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTDeidentificationMethodCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DeidentificationMethodCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DeidentificationMethodCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DeidentificationMethodCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DeidentificationMethodCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DeidentificationMethodCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DeidentificationMethodCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DeidentificationMethodCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DeidentificationMethodCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DeidentificationMethodCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DeidentificationMethodCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DeidentificationMethodCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DeidentificationMethodCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DeidentificationMethodCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DeidentificationMethodCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResource(OFSt } +OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResource(cons } +OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtdimrs.cc b/dcmrt/libsrc/drtdimrs.cc index 89620c18..6ecb63da 100644 --- a/dcmrt/libsrc/drtdimrs.cc +++ b/dcmrt/libsrc/drtdimrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDICOMMediaRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtdirs.cc b/dcmrt/libsrc/drtdirs.cc index 1d28f30a..de664857 100644 --- a/dcmrt/libsrc/drtdirs.cc +++ b/dcmrt/libsrc/drtdirs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDICOMRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtdose.cc b/dcmrt/libsrc/drtdose.cc index aee59807..2f298e80 100644 --- a/dcmrt/libsrc/drtdose.cc +++ b/dcmrt/libsrc/drtdose.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDoseIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,6 +23,9 @@ DRTDoseIOD::DRTDoseIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTDoseIOD::DRTDoseIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTDoseIOD::DRTDoseIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTDoseIOD::DRTDoseIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -121,6 +141,7 @@ DRTDoseIOD::DRTDoseIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -133,9 +154,6 @@ DRTDoseIOD::DRTDoseIOD() AcquisitionDate(DCM_AcquisitionDate), AcquisitionTime(DCM_AcquisitionTime), AcquisitionDateTime(DCM_AcquisitionDateTime), - ReferencedImageSequence(), - DerivationDescription(DCM_DerivationDescription), - SourceImageSequence(), ImagesInAcquisition(DCM_ImagesInAcquisition), ImageComments(DCM_ImageComments), QualityControlImage(DCM_QualityControlImage), @@ -155,7 +173,6 @@ DRTDoseIOD::DRTDoseIOD() SliceLocation(DCM_SliceLocation), Rows(DCM_Rows), Columns(DCM_Columns), - PixelData(DCM_PixelData), PlanarConfiguration(DCM_PlanarConfiguration), PixelAspectRatio(DCM_PixelAspectRatio), SmallestImagePixelValue(DCM_SmallestImagePixelValue), @@ -167,6 +184,8 @@ DRTDoseIOD::DRTDoseIOD() GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData), BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData), ICCProfile(DCM_ICCProfile), + ColorSpace(DCM_ColorSpace), + PixelData(DCM_PixelData), PixelDataProviderURL(DCM_PixelDataProviderURL), PixelPaddingRangeLimit(DCM_PixelPaddingRangeLimit), NumberOfFrames(DCM_NumberOfFrames), @@ -236,6 +255,8 @@ DRTDoseIOD::DRTDoseIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -267,6 +288,9 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -282,12 +306,19 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -321,7 +352,16 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -341,6 +381,7 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -365,6 +406,7 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -377,9 +419,6 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) AcquisitionDate(copy.AcquisitionDate), AcquisitionTime(copy.AcquisitionTime), AcquisitionDateTime(copy.AcquisitionDateTime), - ReferencedImageSequence(copy.ReferencedImageSequence), - DerivationDescription(copy.DerivationDescription), - SourceImageSequence(copy.SourceImageSequence), ImagesInAcquisition(copy.ImagesInAcquisition), ImageComments(copy.ImageComments), QualityControlImage(copy.QualityControlImage), @@ -399,7 +438,6 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) SliceLocation(copy.SliceLocation), Rows(copy.Rows), Columns(copy.Columns), - PixelData(copy.PixelData), PlanarConfiguration(copy.PlanarConfiguration), PixelAspectRatio(copy.PixelAspectRatio), SmallestImagePixelValue(copy.SmallestImagePixelValue), @@ -411,6 +449,8 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData), BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData), ICCProfile(copy.ICCProfile), + ColorSpace(copy.ColorSpace), + PixelData(copy.PixelData), PixelDataProviderURL(copy.PixelDataProviderURL), PixelPaddingRangeLimit(copy.PixelPaddingRangeLimit), NumberOfFrames(copy.NumberOfFrames), @@ -480,6 +520,8 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD ©) RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -517,6 +559,9 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -532,12 +577,19 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -571,7 +623,16 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -591,6 +652,7 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -615,6 +677,7 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -627,9 +690,6 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) AcquisitionDate = copy.AcquisitionDate; AcquisitionTime = copy.AcquisitionTime; AcquisitionDateTime = copy.AcquisitionDateTime; - ReferencedImageSequence = copy.ReferencedImageSequence; - DerivationDescription = copy.DerivationDescription; - SourceImageSequence = copy.SourceImageSequence; ImagesInAcquisition = copy.ImagesInAcquisition; ImageComments = copy.ImageComments; QualityControlImage = copy.QualityControlImage; @@ -649,7 +709,6 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) SliceLocation = copy.SliceLocation; Rows = copy.Rows; Columns = copy.Columns; - PixelData = copy.PixelData; PlanarConfiguration = copy.PlanarConfiguration; PixelAspectRatio = copy.PixelAspectRatio; SmallestImagePixelValue = copy.SmallestImagePixelValue; @@ -661,6 +720,8 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData; BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData; ICCProfile = copy.ICCProfile; + ColorSpace = copy.ColorSpace; + PixelData = copy.PixelData; PixelDataProviderURL = copy.PixelDataProviderURL; PixelPaddingRangeLimit = copy.PixelPaddingRangeLimit; NumberOfFrames = copy.NumberOfFrames; @@ -730,6 +791,8 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD ©) RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -762,6 +825,9 @@ void DRTDoseIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -777,12 +843,19 @@ void DRTDoseIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -816,7 +889,16 @@ void DRTDoseIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -836,6 +918,7 @@ void DRTDoseIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -860,6 +943,7 @@ void DRTDoseIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -873,11 +957,6 @@ void DRTDoseIOD::clear() AcquisitionDate.clear(); AcquisitionTime.clear(); AcquisitionDateTime.clear(); - ReferencedImageSequence.clear(); - DerivationDescription.clear(); - DerivationCodeSequence.clear(); - SourceImageSequence.clear(); - ReferencedInstanceSequence.clear(); ImagesInAcquisition.clear(); ImageComments.clear(); QualityControlImage.clear(); @@ -903,7 +982,6 @@ void DRTDoseIOD::clear() BitsStored.clear(); HighBit.clear(); PixelRepresentation.clear(); - PixelData.clear(); PlanarConfiguration.clear(); PixelAspectRatio.clear(); SmallestImagePixelValue.clear(); @@ -915,6 +993,8 @@ void DRTDoseIOD::clear() GreenPaletteColorLookupTableData.clear(); BluePaletteColorLookupTableData.clear(); ICCProfile.clear(); + ColorSpace.clear(); + PixelData.clear(); PixelDataProviderURL.clear(); PixelPaddingRangeLimit.clear(); NumberOfFrames.clear(); @@ -951,6 +1031,8 @@ void DRTDoseIOD::clear() GridFrameOffsetVector.clear(); DoseGridScaling.clear(); TissueHeterogeneityCorrection.clear(); + DerivationCodeSequence.clear(); + ReferencedInstanceSequence.clear(); ReferencedStructureSetSequence.clear(); DVHNormalizationPoint.clear(); DVHNormalizationDoseValue.clear(); @@ -975,6 +1057,8 @@ void DRTDoseIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -1055,6 +1139,7 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -1070,11 +1155,6 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, AcquisitionDate, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, AcquisitionTime, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, AcquisitionDateTime, "1", "3", "GeneralImageModule"); - ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralImageModule"); - // DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - SourceImageSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - // ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, ImagesInAcquisition, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, ImageComments, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, QualityControlImage, "1", "3", "GeneralImageModule"); @@ -1113,7 +1193,6 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset) // getAndCheckElementFromDataset(dataset, BitsStored, "1", "1", "ImagePixelModule"); // getAndCheckElementFromDataset(dataset, HighBit, "1", "1", "ImagePixelModule"); // getAndCheckElementFromDataset(dataset, PixelRepresentation, "1", "1", "ImagePixelModule"); - getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PlanarConfiguration, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelAspectRatio, "2", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, SmallestImagePixelValue, "1", "3", "ImagePixelModule"); @@ -1125,6 +1204,8 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, GreenPaletteColorLookupTableData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, BluePaletteColorLookupTableData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, ICCProfile, "1", "3", "ImagePixelModule"); + getAndCheckElementFromDataset(dataset, ColorSpace, "1", "3", "ImagePixelModule"); + getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelDataProviderURL, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelPaddingRangeLimit, "1", "1C", "ImagePixelModule"); } @@ -1248,6 +1329,8 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -1290,6 +1373,9 @@ OFCondition DRTDoseIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -1305,12 +1391,19 @@ OFCondition DRTDoseIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -1366,7 +1459,16 @@ OFCondition DRTDoseIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -1403,6 +1505,7 @@ OFCondition DRTDoseIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -1441,6 +1544,9 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -1456,12 +1562,19 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1506,7 +1619,16 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1534,6 +1656,7 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1567,6 +1690,7 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1584,11 +1708,6 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmDate(AcquisitionDate), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmTime(AcquisitionTime), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmDateTime(AcquisitionDateTime), "1", "3", "GeneralImageModule"); - if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralImageModule"); - // if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - // if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmIntegerString(ImagesInAcquisition), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmLongText(ImageComments), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlImage), "1", "3", "GeneralImageModule"); @@ -1624,7 +1743,6 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) // addElementToDataset(result, dataset, new DcmUnsignedShort(BitsStored), "1", "1", "ImagePixelModule"); // addElementToDataset(result, dataset, new DcmUnsignedShort(HighBit), "1", "1", "ImagePixelModule"); // addElementToDataset(result, dataset, new DcmUnsignedShort(PixelRepresentation), "1", "1", "ImagePixelModule"); - addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmIntegerString(PixelAspectRatio), "2", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "ImagePixelModule"); @@ -1636,6 +1754,8 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "ImagePixelModule"); + addElementToDataset(result, dataset, new DcmCodeString(ColorSpace), "1", "3", "ImagePixelModule"); + addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUniversalResourceIdentifierOrLocator(PixelDataProviderURL), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(PixelPaddingRangeLimit), "1", "1C", "ImagePixelModule"); } @@ -1751,6 +1871,8 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1817,7 +1939,16 @@ OFBool DRTDoseIOD::isPatientStudyModulePresent(const OFBool /*complete*/) !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1858,9 +1989,6 @@ OFBool DRTDoseIOD::isGeneralImageModulePresent(const OFBool /*complete*/) !AcquisitionDate.isEmpty() || !AcquisitionTime.isEmpty() || !AcquisitionDateTime.isEmpty() || - !ReferencedImageSequence.isEmpty() || - !DerivationDescription.isEmpty() || - !SourceImageSequence.isEmpty() || !ImagesInAcquisition.isEmpty() || !ImageComments.isEmpty() || !QualityControlImage.isEmpty() || @@ -1906,7 +2034,6 @@ OFBool DRTDoseIOD::isImagePixelModulePresent(const OFBool complete) /* check whether at least one attribute is present */ return !Rows.isEmpty() || !Columns.isEmpty() || - !PixelData.isEmpty() || !PlanarConfiguration.isEmpty() || !PixelAspectRatio.isEmpty() || !SmallestImagePixelValue.isEmpty() || @@ -1918,6 +2045,8 @@ OFBool DRTDoseIOD::isImagePixelModulePresent(const OFBool complete) !GreenPaletteColorLookupTableData.isEmpty() || !BluePaletteColorLookupTableData.isEmpty() || !ICCProfile.isEmpty() || + !ColorSpace.isEmpty() || + !PixelData.isEmpty() || !PixelDataProviderURL.isEmpty() || !PixelPaddingRangeLimit.isEmpty(); } @@ -2116,6 +2245,12 @@ OFCondition DRTDoseIOD::getAdmittingDiagnosesDescription(OFString &value, const } +OFCondition DRTDoseIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTDoseIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos); @@ -2245,6 +2380,12 @@ OFCondition DRTDoseIOD::getClinicalTrialTimePointID(OFString &value, const signe } +OFCondition DRTDoseIOD::getColorSpace(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(ColorSpace, value, pos); +} + + OFCondition DRTDoseIOD::getColumns(Uint16 &value, const unsigned long pos) const { return OFconst_cast(DcmUnsignedShort &, Columns).getUint16(value, pos); @@ -2323,12 +2464,6 @@ OFCondition DRTDoseIOD::getDeidentificationMethod(OFString &value, const signed } -OFCondition DRTDoseIOD::getDerivationDescription(OFString &value, const signed long pos) const -{ - return getStringValueFromElement(DerivationDescription, value, pos); -} - - OFCondition DRTDoseIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -2593,6 +2728,12 @@ OFCondition DRTDoseIOD::getLargestImagePixelValue(Uint16 &value, const unsigned } +OFCondition DRTDoseIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTDoseIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -2641,6 +2782,36 @@ OFCondition DRTDoseIOD::getManufacturerModelName(OFString &value, const signed l } +OFCondition DRTDoseIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTDoseIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTDoseIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTDoseIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTDoseIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTDoseIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -2785,18 +2956,42 @@ OFCondition DRTDoseIOD::getPatientAge(OFString &value, const signed long pos) co } +OFCondition DRTDoseIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTDoseIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTDoseIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTDoseIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTDoseIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTDoseIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTDoseIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -2809,6 +3004,12 @@ OFCondition DRTDoseIOD::getPatientComments(OFString &value, const signed long po } +OFCondition DRTDoseIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTDoseIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -2863,6 +3064,12 @@ OFCondition DRTDoseIOD::getPatientSpeciesDescription(OFString &value, const sign } +OFCondition DRTDoseIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTDoseIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -2989,6 +3196,12 @@ OFCondition DRTDoseIOD::getPositionReferenceIndicator(OFString &value, const sig } +OFCondition DRTDoseIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTDoseIOD::getPresentationLUTShape(OFString &value, const signed long pos) const { return getStringValueFromElement(PresentationLUTShape, value, pos); @@ -3256,6 +3469,12 @@ OFCondition DRTDoseIOD::getSmallestImagePixelValue(Uint16 &value, const unsigned } +OFCondition DRTDoseIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTDoseIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -3298,6 +3517,24 @@ OFCondition DRTDoseIOD::getStereoPairsPresent(OFString &value, const signed long } +OFCondition DRTDoseIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTDoseIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTDoseIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTDoseIOD::getStructureSetDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StructureSetDate, value, pos); @@ -3448,6 +3685,15 @@ OFCondition DRTDoseIOD::setAdmittingDiagnosesDescription(const OFString &value, } +OFCondition DRTDoseIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -3616,6 +3862,15 @@ OFCondition DRTDoseIOD::setClinicalTrialTimePointID(const OFString &value, const } +OFCondition DRTDoseIOD::setColorSpace(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ColorSpace.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setColumns(const Uint16 value, const unsigned long pos) { return Columns.putUint16(value, pos); @@ -3703,15 +3958,6 @@ OFCondition DRTDoseIOD::setDeidentificationMethod(const OFString &value, const O } -OFCondition DRTDoseIOD::setDerivationDescription(const OFString &value, const OFBool check) -{ - OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; - if (result.good()) - result = DerivationDescription.putOFStringArray(value); - return result; -} - - OFCondition DRTDoseIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -3982,6 +4228,15 @@ OFCondition DRTDoseIOD::setLargestImagePixelValue(const Uint16 value, const unsi } +OFCondition DRTDoseIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4036,6 +4291,33 @@ OFCondition DRTDoseIOD::setManufacturerModelName(const OFString &value, const OF } +OFCondition DRTDoseIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTDoseIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTDoseIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4201,6 +4483,15 @@ OFCondition DRTDoseIOD::setPatientAge(const OFString &value, const OFBool check) } +OFCondition DRTDoseIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -4210,6 +4501,15 @@ OFCondition DRTDoseIOD::setPatientBirthDate(const OFString &value, const OFBool } +OFCondition DRTDoseIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -4219,6 +4519,15 @@ OFCondition DRTDoseIOD::setPatientBirthTime(const OFString &value, const OFBool } +OFCondition DRTDoseIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -4237,6 +4546,15 @@ OFCondition DRTDoseIOD::setPatientComments(const OFString &value, const OFBool c } +OFCondition DRTDoseIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -4309,6 +4627,15 @@ OFCondition DRTDoseIOD::setPatientSpeciesDescription(const OFString &value, cons } +OFCondition DRTDoseIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -4450,6 +4777,12 @@ OFCondition DRTDoseIOD::setPositionReferenceIndicator(const OFString &value, con } +OFCondition DRTDoseIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTDoseIOD::setPresentationLUTShape(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4750,6 +5083,15 @@ OFCondition DRTDoseIOD::setSmallestImagePixelValue(const Uint16 value, const uns } +OFCondition DRTDoseIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -4804,6 +5146,33 @@ OFCondition DRTDoseIOD::setStereoPairsPresent(const OFString &value, const OFBoo } +OFCondition DRTDoseIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTDoseIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTDoseIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTDoseIOD::setStructureSetDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drtdrs.cc b/dcmrt/libsrc/drtdrs.cc index 4cc00b71..e709dc20 100644 --- a/dcmrt/libsrc/drtdrs.cc +++ b/dcmrt/libsrc/drtdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtds.cc b/dcmrt/libsrc/drtds.cc index 69b00cf1..9061a448 100644 --- a/dcmrt/libsrc/drtds.cc +++ b/dcmrt/libsrc/drtds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -44,6 +44,7 @@ DRTDeviceSequence::Item::Item(const OFBool emptyDefaultItem) Manufacturer(DCM_Manufacturer), ManufacturerModelName(DCM_ManufacturerModelName), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -75,6 +76,7 @@ DRTDeviceSequence::Item::Item(const Item ©) Manufacturer(copy.Manufacturer), ManufacturerModelName(copy.ManufacturerModelName), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -114,6 +116,7 @@ DRTDeviceSequence::Item &DRTDeviceSequence::Item::operator=(const Item ©) Manufacturer = copy.Manufacturer; ManufacturerModelName = copy.ManufacturerModelName; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -137,6 +140,7 @@ void DRTDeviceSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -168,6 +172,7 @@ OFBool DRTDeviceSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -209,6 +214,7 @@ OFCondition DRTDeviceSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DeviceSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DeviceSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DeviceSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DeviceSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DeviceSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DeviceSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DeviceSequence"); @@ -246,6 +252,7 @@ OFCondition DRTDeviceSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DeviceSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DeviceSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DeviceSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DeviceSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DeviceSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DeviceSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DeviceSequence"); @@ -499,6 +506,15 @@ OFCondition DRTDeviceSequence::Item::getMappingResource(OFString &value, const s } +OFCondition DRTDeviceSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTDeviceSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -803,6 +819,19 @@ OFCondition DRTDeviceSequence::Item::setMappingResource(const OFString &value, c } +OFCondition DRTDeviceSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTDeviceSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtdspcs.cc b/dcmrt/libsrc/drtdspcs.cc index a03182d3..723d23dd 100644 --- a/dcmrt/libsrc/drtdspcs.cc +++ b/dcmrt/libsrc/drtdspcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDigitalSignaturePurposeCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item::Item(const OFBool emptyDefaultItem EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequ EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTDigitalSignaturePurposeCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTDigitalSignaturePurposeCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DigitalSignaturePurposeCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DigitalSignaturePurposeCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DigitalSignaturePurposeCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DigitalSignaturePurposeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DigitalSignaturePurposeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DigitalSignaturePurposeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DigitalSignaturePurposeCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DigitalSignaturePurposeCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DigitalSignaturePurposeCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DigitalSignaturePurposeCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DigitalSignaturePurposeCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DigitalSignaturePurposeCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DigitalSignaturePurposeCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DigitalSignaturePurposeCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResource(OFS } +OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResource(con } +OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtdss.cc b/dcmrt/libsrc/drtdss.cc index e9e173ae..139c075d 100644 --- a/dcmrt/libsrc/drtdss.cc +++ b/dcmrt/libsrc/drtdss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDigitalSignaturesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtdvhs.cc b/dcmrt/libsrc/drtdvhs.cc index 328a7650..1969101f 100644 --- a/dcmrt/libsrc/drtdvhs.cc +++ b/dcmrt/libsrc/drtdvhs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDVHSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtdvrrs.cc b/dcmrt/libsrc/drtdvrrs.cc index eec70c23..217d76f5 100644 --- a/dcmrt/libsrc/drtdvrrs.cc +++ b/dcmrt/libsrc/drtdvrrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTDVHReferencedROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drteas.cc b/dcmrt/libsrc/drteas.cc index 53d8069d..02e07a87 100644 --- a/dcmrt/libsrc/drteas.cc +++ b/dcmrt/libsrc/drteas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTEncryptedAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtecs.cc b/dcmrt/libsrc/drtecs.cc index 4f07d4c5..26e6b76d 100644 --- a/dcmrt/libsrc/drtecs.cc +++ b/dcmrt/libsrc/drtecs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTEquivalentCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -25,7 +25,16 @@ DRTEquivalentCodeSequence::Item::Item(const OFBool emptyDefaultItem) CodeValue(DCM_CodeValue), CodingSchemeDesignator(DCM_CodingSchemeDesignator), CodingSchemeVersion(DCM_CodingSchemeVersion), + ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag), + ContextGroupLocalVersion(DCM_ContextGroupLocalVersion), + ContextGroupVersion(DCM_ContextGroupVersion), + ContextIdentifier(DCM_ContextIdentifier), + ContextUID(DCM_ContextUID), LongCodeValue(DCM_LongCodeValue), + MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), + MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { } @@ -37,7 +46,16 @@ DRTEquivalentCodeSequence::Item::Item(const Item ©) CodeValue(copy.CodeValue), CodingSchemeDesignator(copy.CodingSchemeDesignator), CodingSchemeVersion(copy.CodingSchemeVersion), + ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag), + ContextGroupLocalVersion(copy.ContextGroupLocalVersion), + ContextGroupVersion(copy.ContextGroupVersion), + ContextIdentifier(copy.ContextIdentifier), + ContextUID(copy.ContextUID), LongCodeValue(copy.LongCodeValue), + MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), + MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { } @@ -57,7 +75,16 @@ DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::Item::operator=(cons CodeValue = copy.CodeValue; CodingSchemeDesignator = copy.CodingSchemeDesignator; CodingSchemeVersion = copy.CodingSchemeVersion; + ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID; + ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag; + ContextGroupLocalVersion = copy.ContextGroupLocalVersion; + ContextGroupVersion = copy.ContextGroupVersion; + ContextIdentifier = copy.ContextIdentifier; + ContextUID = copy.ContextUID; LongCodeValue = copy.LongCodeValue; + MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; + MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } return *this; @@ -75,6 +102,15 @@ void DRTEquivalentCodeSequence::Item::clear() CodeMeaning.clear(); LongCodeValue.clear(); URNCodeValue.clear(); + ContextIdentifier.clear(); + ContextUID.clear(); + MappingResource.clear(); + MappingResourceUID.clear(); + MappingResourceName.clear(); + ContextGroupVersion.clear(); + ContextGroupExtensionFlag.clear(); + ContextGroupLocalVersion.clear(); + ContextGroupExtensionCreatorUID.clear(); } } @@ -86,7 +122,16 @@ OFBool DRTEquivalentCodeSequence::Item::isEmpty() CodingSchemeVersion.isEmpty() && CodeMeaning.isEmpty() && LongCodeValue.isEmpty() && - URNCodeValue.isEmpty(); + URNCodeValue.isEmpty() && + ContextIdentifier.isEmpty() && + ContextUID.isEmpty() && + MappingResource.isEmpty() && + MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && + ContextGroupVersion.isEmpty() && + ContextGroupExtensionFlag.isEmpty() && + ContextGroupLocalVersion.isEmpty() && + ContextGroupExtensionCreatorUID.isEmpty(); } @@ -109,6 +154,15 @@ OFCondition DRTEquivalentCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "EquivalentCodeSequence"); getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "EquivalentCodeSequence"); getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextUID, "1", "3", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "EquivalentCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "EquivalentCodeSequence"); result = EC_Normal; } return result; @@ -127,6 +181,15 @@ OFCondition DRTEquivalentCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "EquivalentCodeSequence"); addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "EquivalentCodeSequence"); addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "EquivalentCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "EquivalentCodeSequence"); } return result; } @@ -168,6 +231,60 @@ OFCondition DRTEquivalentCodeSequence::Item::getCodingSchemeVersion(OFString &va } +OFCondition DRTEquivalentCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionFlag, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupLocalVersion, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupVersion, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextIdentifier, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextUID, value, pos); +} + + OFCondition DRTEquivalentCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -177,6 +294,33 @@ OFCondition DRTEquivalentCodeSequence::Item::getLongCodeValue(OFString &value, c } +OFCondition DRTEquivalentCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + +OFCondition DRTEquivalentCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceUID, value, pos); +} + + OFCondition DRTEquivalentCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -238,6 +382,84 @@ OFCondition DRTEquivalentCodeSequence::Item::setCodingSchemeVersion(const OFStri } +OFCondition DRTEquivalentCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionCreatorUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionFlag.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupLocalVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextIdentifier.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setContextUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextUID.putOFStringArray(value); + } + return result; +} + + OFCondition DRTEquivalentCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -251,6 +473,45 @@ OFCondition DRTEquivalentCodeSequence::Item::setLongCodeValue(const OFString &va } +OFCondition DRTEquivalentCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTEquivalentCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceUID.putOFStringArray(value); + } + return result; +} + + OFCondition DRTEquivalentCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtes.cc b/dcmrt/libsrc/drtes.cc index 58d00279..e1654d78 100644 --- a/dcmrt/libsrc/drtes.cc +++ b/dcmrt/libsrc/drtes.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTExposureSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtfds.cc b/dcmrt/libsrc/drtfds.cc index 3a69a634..f258e358 100644 --- a/dcmrt/libsrc/drtfds.cc +++ b/dcmrt/libsrc/drtfds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFixationDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtfes.cc b/dcmrt/libsrc/drtfes.cc index add7207f..d9df793b 100644 --- a/dcmrt/libsrc/drtfes.cc +++ b/dcmrt/libsrc/drtfes.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFrameExtractionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtfgs.cc b/dcmrt/libsrc/drtfgs.cc index c82bde54..b53b00a5 100644 --- a/dcmrt/libsrc/drtfgs.cc +++ b/dcmrt/libsrc/drtfgs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFractionGroupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtfgss.cc b/dcmrt/libsrc/drtfgss.cc index 6bfe62a7..6abf72e3 100644 --- a/dcmrt/libsrc/drtfgss.cc +++ b/dcmrt/libsrc/drtfgss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFractionGroupSummarySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtfms.cc b/dcmrt/libsrc/drtfms.cc index a0e73bb8..878e8c7c 100644 --- a/dcmrt/libsrc/drtfms.cc +++ b/dcmrt/libsrc/drtfms.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFluenceMapSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtfsss.cc b/dcmrt/libsrc/drtfsss.cc index 75400c7f..25991a54 100644 --- a/dcmrt/libsrc/drtfsss.cc +++ b/dcmrt/libsrc/drtfsss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTFractionStatusSummarySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtgas.cc b/dcmrt/libsrc/drtgas.cc index 613c9f25..72c6888b 100644 --- a/dcmrt/libsrc/drtgas.cc +++ b/dcmrt/libsrc/drtgas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTGeneralAccessorySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtgpis.cc b/dcmrt/libsrc/drtgpis.cc new file mode 100644 index 00000000..6d1bf151 --- /dev/null +++ b/dcmrt/libsrc/drtgpis.cc @@ -0,0 +1,634 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTGroupOfPatientsIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtgpis.h" + + +// --- item class --- + +DRTGroupOfPatientsIdentificationSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + IssuerOfPatientID(DCM_IssuerOfPatientID), + IssuerOfPatientIDQualifiersSequence(emptyDefaultItem /*emptyDefaultSequence*/), + PatientID(DCM_PatientID), + PatientPosition(DCM_PatientPosition), + SubjectRelativePositionInImage(DCM_SubjectRelativePositionInImage) +{ +} + + +DRTGroupOfPatientsIdentificationSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + IssuerOfPatientID(copy.IssuerOfPatientID), + IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), + PatientID(copy.PatientID), + PatientPosition(copy.PatientPosition), + SubjectRelativePositionInImage(copy.SubjectRelativePositionInImage) +{ +} + + +DRTGroupOfPatientsIdentificationSequence::Item::~Item() +{ +} + + +DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + IssuerOfPatientID = copy.IssuerOfPatientID; + IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; + PatientID = copy.PatientID; + PatientPosition = copy.PatientPosition; + SubjectRelativePositionInImage = copy.SubjectRelativePositionInImage; + } + return *this; +} + + +void DRTGroupOfPatientsIdentificationSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + PatientID.clear(); + IssuerOfPatientID.clear(); + IssuerOfPatientIDQualifiersSequence.clear(); + SubjectRelativePositionInImage.clear(); + PatientPosition.clear(); + } +} + + +OFBool DRTGroupOfPatientsIdentificationSequence::Item::isEmpty() +{ + return PatientID.isEmpty() && + IssuerOfPatientID.isEmpty() && + IssuerOfPatientIDQualifiersSequence.isEmpty() && + SubjectRelativePositionInImage.isEmpty() && + PatientPosition.isEmpty(); +} + + +OFBool DRTGroupOfPatientsIdentificationSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, PatientID, "1", "1", "GroupOfPatientsIdentificationSequence"); + getAndCheckElementFromDataset(item, IssuerOfPatientID, "1", "3", "GroupOfPatientsIdentificationSequence"); + IssuerOfPatientIDQualifiersSequence.read(item, "1-n", "3", "GroupOfPatientsIdentificationSequence"); + getAndCheckElementFromDataset(item, SubjectRelativePositionInImage, "3", "3", "GroupOfPatientsIdentificationSequence"); + getAndCheckElementFromDataset(item, PatientPosition, "1", "3", "GroupOfPatientsIdentificationSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmLongString(PatientID), "1", "1", "GroupOfPatientsIdentificationSequence"); + addElementToDataset(result, item, new DcmLongString(IssuerOfPatientID), "1", "3", "GroupOfPatientsIdentificationSequence"); + if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(item, "1-n", "3", "GroupOfPatientsIdentificationSequence"); + addElementToDataset(result, item, new DcmUnsignedShort(SubjectRelativePositionInImage), "3", "3", "GroupOfPatientsIdentificationSequence"); + addElementToDataset(result, item, new DcmCodeString(PatientPosition), "1", "3", "GroupOfPatientsIdentificationSequence"); + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getIssuerOfPatientID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(IssuerOfPatientID, value, pos); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getPatientID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PatientID, value, pos); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getPatientPosition(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PatientPosition, value, pos); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getSubjectRelativePositionInImage(Uint16 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmUnsignedShort &, SubjectRelativePositionInImage).getUint16(value, pos); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setIssuerOfPatientID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = IssuerOfPatientID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setPatientID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setPatientPosition(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientPosition.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setSubjectRelativePositionInImage(const Uint16 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return SubjectRelativePositionInImage.putUint16(value, pos); +} + + +// --- sequence class --- + +DRTGroupOfPatientsIdentificationSequence::DRTGroupOfPatientsIdentificationSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTGroupOfPatientsIdentificationSequence::DRTGroupOfPatientsIdentificationSequence(const DRTGroupOfPatientsIdentificationSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTGroupOfPatientsIdentificationSequence &DRTGroupOfPatientsIdentificationSequence::operator=(const DRTGroupOfPatientsIdentificationSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTGroupOfPatientsIdentificationSequence::~DRTGroupOfPatientsIdentificationSequence() +{ + clear(); +} + + +void DRTGroupOfPatientsIdentificationSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTGroupOfPatientsIdentificationSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTGroupOfPatientsIdentificationSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTGroupOfPatientsIdentificationSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_GroupOfPatientsIdentificationSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_GroupOfPatientsIdentificationSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTGroupOfPatientsIdentificationSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_GroupOfPatientsIdentificationSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drthsdrs.cc b/dcmrt/libsrc/drthsdrs.cc index 129979a7..ce61e359 100644 --- a/dcmrt/libsrc/drthsdrs.cc +++ b/dcmrt/libsrc/drthsdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTHL7StructuredDocumentReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtiais.cc b/dcmrt/libsrc/drtiais.cc index c206dae8..62a31903 100644 --- a/dcmrt/libsrc/drtiais.cc +++ b/dcmrt/libsrc/drtiais.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIssuerOfAdmissionIDSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtians.cc b/dcmrt/libsrc/drtians.cc index 6e0bb83a..64a3f181 100644 --- a/dcmrt/libsrc/drtians.cc +++ b/dcmrt/libsrc/drtians.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIssuerOfAccessionNumberSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtiblds.cc b/dcmrt/libsrc/drtiblds.cc index 0cc4309d..1cddc44c 100644 --- a/dcmrt/libsrc/drtiblds.cc +++ b/dcmrt/libsrc/drtiblds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonBeamLimitingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtibls.cc b/dcmrt/libsrc/drtibls.cc index a58a0380..1a5aeb0d 100644 --- a/dcmrt/libsrc/drtibls.cc +++ b/dcmrt/libsrc/drtibls.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonBlockSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtibs.cc b/dcmrt/libsrc/drtibs.cc index 88cffe19..022da8de 100644 --- a/dcmrt/libsrc/drtibs.cc +++ b/dcmrt/libsrc/drtibs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -26,8 +26,10 @@ DRTIonBeamSequence::Item::Item(const OFBool emptyDefaultItem) BeamName(DCM_BeamName), BeamNumber(DCM_BeamNumber), BeamType(DCM_BeamType), + DepthDoseParametersSequence(emptyDefaultItem /*emptyDefaultSequence*/), DeviceSerialNumber(DCM_DeviceSerialNumber), FinalCumulativeMetersetWeight(DCM_FinalCumulativeMetersetWeight), + FixationEye(DCM_FixationEye), FixationLightAzimuthalAngle(DCM_FixationLightAzimuthalAngle), FixationLightPolarAngle(DCM_FixationLightPolarAngle), GeneralAccessorySequence(emptyDefaultItem /*emptyDefaultSequence*/), @@ -42,6 +44,7 @@ DRTIonBeamSequence::Item::Item(const OFBool emptyDefaultItem) LateralSpreadingDeviceSequence(emptyDefaultItem /*emptyDefaultSequence*/), Manufacturer(DCM_Manufacturer), ManufacturerModelName(DCM_ManufacturerModelName), + ModulatedScanModeType(DCM_ModulatedScanModeType), NumberOfBlocks(DCM_NumberOfBlocks), NumberOfBoli(DCM_NumberOfBoli), NumberOfCompensators(DCM_NumberOfCompensators), @@ -84,8 +87,10 @@ DRTIonBeamSequence::Item::Item(const Item ©) BeamName(copy.BeamName), BeamNumber(copy.BeamNumber), BeamType(copy.BeamType), + DepthDoseParametersSequence(copy.DepthDoseParametersSequence), DeviceSerialNumber(copy.DeviceSerialNumber), FinalCumulativeMetersetWeight(copy.FinalCumulativeMetersetWeight), + FixationEye(copy.FixationEye), FixationLightAzimuthalAngle(copy.FixationLightAzimuthalAngle), FixationLightPolarAngle(copy.FixationLightPolarAngle), GeneralAccessorySequence(copy.GeneralAccessorySequence), @@ -100,6 +105,7 @@ DRTIonBeamSequence::Item::Item(const Item ©) LateralSpreadingDeviceSequence(copy.LateralSpreadingDeviceSequence), Manufacturer(copy.Manufacturer), ManufacturerModelName(copy.ManufacturerModelName), + ModulatedScanModeType(copy.ModulatedScanModeType), NumberOfBlocks(copy.NumberOfBlocks), NumberOfBoli(copy.NumberOfBoli), NumberOfCompensators(copy.NumberOfCompensators), @@ -150,8 +156,10 @@ DRTIonBeamSequence::Item &DRTIonBeamSequence::Item::operator=(const Item ©) BeamName = copy.BeamName; BeamNumber = copy.BeamNumber; BeamType = copy.BeamType; + DepthDoseParametersSequence = copy.DepthDoseParametersSequence; DeviceSerialNumber = copy.DeviceSerialNumber; FinalCumulativeMetersetWeight = copy.FinalCumulativeMetersetWeight; + FixationEye = copy.FixationEye; FixationLightAzimuthalAngle = copy.FixationLightAzimuthalAngle; FixationLightPolarAngle = copy.FixationLightPolarAngle; GeneralAccessorySequence = copy.GeneralAccessorySequence; @@ -166,6 +174,7 @@ DRTIonBeamSequence::Item &DRTIonBeamSequence::Item::operator=(const Item ©) LateralSpreadingDeviceSequence = copy.LateralSpreadingDeviceSequence; Manufacturer = copy.Manufacturer; ManufacturerModelName = copy.ManufacturerModelName; + ModulatedScanModeType = copy.ModulatedScanModeType; NumberOfBlocks = copy.NumberOfBlocks; NumberOfBoli = copy.NumberOfBoli; NumberOfCompensators = copy.NumberOfCompensators; @@ -216,6 +225,7 @@ void DRTIonBeamSequence::Item::clear() RadiationAtomicNumber.clear(); RadiationChargeState.clear(); ScanMode.clear(); + ModulatedScanModeType.clear(); TreatmentMachineName.clear(); Manufacturer.clear(); InstitutionName.clear(); @@ -226,6 +236,7 @@ void DRTIonBeamSequence::Item::clear() PrimaryDosimeterUnit.clear(); ReferencedToleranceTableNumber.clear(); VirtualSourceAxisDistances.clear(); + DepthDoseParametersSequence.clear(); IonBeamLimitingDeviceSequence.clear(); ReferencedPatientSetupNumber.clear(); ReferencedReferenceImageSequence.clear(); @@ -256,6 +267,7 @@ void DRTIonBeamSequence::Item::clear() PatientSupportAccessoryCode.clear(); FixationLightAzimuthalAngle.clear(); FixationLightPolarAngle.clear(); + FixationEye.clear(); FinalCumulativeMetersetWeight.clear(); NumberOfControlPoints.clear(); IonControlPointSequence.clear(); @@ -274,6 +286,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty() RadiationAtomicNumber.isEmpty() && RadiationChargeState.isEmpty() && ScanMode.isEmpty() && + ModulatedScanModeType.isEmpty() && TreatmentMachineName.isEmpty() && Manufacturer.isEmpty() && InstitutionName.isEmpty() && @@ -284,6 +297,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty() PrimaryDosimeterUnit.isEmpty() && ReferencedToleranceTableNumber.isEmpty() && VirtualSourceAxisDistances.isEmpty() && + DepthDoseParametersSequence.isEmpty() && IonBeamLimitingDeviceSequence.isEmpty() && ReferencedPatientSetupNumber.isEmpty() && ReferencedReferenceImageSequence.isEmpty() && @@ -314,6 +328,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty() PatientSupportAccessoryCode.isEmpty() && FixationLightAzimuthalAngle.isEmpty() && FixationLightPolarAngle.isEmpty() && + FixationEye.isEmpty() && FinalCumulativeMetersetWeight.isEmpty() && NumberOfControlPoints.isEmpty() && IonControlPointSequence.isEmpty(); @@ -342,6 +357,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, RadiationAtomicNumber, "1", "1C", "IonBeamSequence"); getAndCheckElementFromDataset(item, RadiationChargeState, "1", "1C", "IonBeamSequence"); getAndCheckElementFromDataset(item, ScanMode, "1", "1", "IonBeamSequence"); + getAndCheckElementFromDataset(item, ModulatedScanModeType, "1", "1C", "IonBeamSequence"); getAndCheckElementFromDataset(item, TreatmentMachineName, "1", "2", "IonBeamSequence"); getAndCheckElementFromDataset(item, Manufacturer, "1", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, InstitutionName, "1", "3", "IonBeamSequence"); @@ -352,6 +368,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, PrimaryDosimeterUnit, "1", "1", "IonBeamSequence"); getAndCheckElementFromDataset(item, ReferencedToleranceTableNumber, "1", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, VirtualSourceAxisDistances, "2", "1", "IonBeamSequence"); + DepthDoseParametersSequence.read(item, "1-n", "3", "IonBeamSequence"); IonBeamLimitingDeviceSequence.read(item, "1-n", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, ReferencedPatientSetupNumber, "1", "3", "IonBeamSequence"); ReferencedReferenceImageSequence.read(item, "1-n", "3", "IonBeamSequence"); @@ -382,6 +399,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, PatientSupportAccessoryCode, "1", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, FixationLightAzimuthalAngle, "1", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, FixationLightPolarAngle, "1", "3", "IonBeamSequence"); + getAndCheckElementFromDataset(item, FixationEye, "1", "3", "IonBeamSequence"); getAndCheckElementFromDataset(item, FinalCumulativeMetersetWeight, "1", "1C", "IonBeamSequence"); getAndCheckElementFromDataset(item, NumberOfControlPoints, "1", "1", "IonBeamSequence"); IonControlPointSequence.read(item, "1-n", "1", "IonBeamSequence"); @@ -406,6 +424,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmIntegerString(RadiationAtomicNumber), "1", "1C", "IonBeamSequence"); addElementToDataset(result, item, new DcmSignedShort(RadiationChargeState), "1", "1C", "IonBeamSequence"); addElementToDataset(result, item, new DcmCodeString(ScanMode), "1", "1", "IonBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(ModulatedScanModeType), "1", "1C", "IonBeamSequence"); addElementToDataset(result, item, new DcmShortString(TreatmentMachineName), "1", "2", "IonBeamSequence"); addElementToDataset(result, item, new DcmLongString(Manufacturer), "1", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmLongString(InstitutionName), "1", "3", "IonBeamSequence"); @@ -416,6 +435,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmCodeString(PrimaryDosimeterUnit), "1", "1", "IonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(ReferencedToleranceTableNumber), "1", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(VirtualSourceAxisDistances), "2", "1", "IonBeamSequence"); + if (result.good()) result = DepthDoseParametersSequence.write(item, "1-n", "3", "IonBeamSequence"); if (result.good()) result = IonBeamLimitingDeviceSequence.write(item, "1-n", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(ReferencedPatientSetupNumber), "1", "3", "IonBeamSequence"); if (result.good()) result = ReferencedReferenceImageSequence.write(item, "1-n", "3", "IonBeamSequence"); @@ -446,6 +466,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmLongString(PatientSupportAccessoryCode), "1", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightAzimuthalAngle), "1", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightPolarAngle), "1", "3", "IonBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(FixationEye), "1", "3", "IonBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(FinalCumulativeMetersetWeight), "1", "1C", "IonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(NumberOfControlPoints), "1", "1", "IonBeamSequence"); if (result.good()) result = IonControlPointSequence.write(item, "1-n", "1", "IonBeamSequence"); @@ -526,6 +547,15 @@ OFCondition DRTIonBeamSequence::Item::getFinalCumulativeMetersetWeight(Float64 & } +OFCondition DRTIonBeamSequence::Item::getFixationEye(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(FixationEye, value, pos); +} + + OFCondition DRTIonBeamSequence::Item::getFixationLightAzimuthalAngle(Float32 &value, const unsigned long pos) const { if (EmptyDefaultItem) @@ -589,6 +619,15 @@ OFCondition DRTIonBeamSequence::Item::getManufacturerModelName(OFString &value, } +OFCondition DRTIonBeamSequence::Item::getModulatedScanModeType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ModulatedScanModeType, value, pos); +} + + OFCondition DRTIonBeamSequence::Item::getNumberOfBlocks(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -1000,6 +1039,19 @@ OFCondition DRTIonBeamSequence::Item::setFinalCumulativeMetersetWeight(const OFS } +OFCondition DRTIonBeamSequence::Item::setFixationEye(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = FixationEye.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonBeamSequence::Item::setFixationLightAzimuthalAngle(const Float32 value, const unsigned long pos) { if (EmptyDefaultItem) @@ -1083,6 +1135,19 @@ OFCondition DRTIonBeamSequence::Item::setManufacturerModelName(const OFString &v } +OFCondition DRTIonBeamSequence::Item::setModulatedScanModeType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ModulatedScanModeType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonBeamSequence::Item::setNumberOfBlocks(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drticpds.cc b/dcmrt/libsrc/drticpds.cc index 5645f814..b0ed84b5 100644 --- a/dcmrt/libsrc/drticpds.cc +++ b/dcmrt/libsrc/drticpds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonControlPointDeliverySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -24,6 +24,7 @@ DRTIonControlPointDeliverySequence::Item::Item(const OFBool emptyDefaultItem) BeamLimitingDeviceAngle(DCM_BeamLimitingDeviceAngle), BeamLimitingDevicePositionSequence(emptyDefaultItem /*emptyDefaultSequence*/), BeamLimitingDeviceRotationDirection(DCM_BeamLimitingDeviceRotationDirection), + ChairHeadFramePosition(DCM_ChairHeadFramePosition), CorrectedParameterSequence(emptyDefaultItem /*emptyDefaultSequence*/), DeliveredMeterset(DCM_DeliveredMeterset), GantryAngle(DCM_GantryAngle), @@ -47,6 +48,8 @@ DRTIonControlPointDeliverySequence::Item::Item(const OFBool emptyDefaultItem) ReferencedControlPointIndex(DCM_ReferencedControlPointIndex), ScanSpotMetersetsDelivered(DCM_ScanSpotMetersetsDelivered), ScanSpotPositionMap(DCM_ScanSpotPositionMap), + ScanSpotPrescribedIndices(DCM_ScanSpotPrescribedIndices), + ScanSpotReordered(DCM_ScanSpotReordered), ScanSpotTuneID(DCM_ScanSpotTuneID), ScanningSpotSize(DCM_ScanningSpotSize), SnoutPosition(DCM_SnoutPosition), @@ -69,6 +72,7 @@ DRTIonControlPointDeliverySequence::Item::Item(const Item ©) BeamLimitingDeviceAngle(copy.BeamLimitingDeviceAngle), BeamLimitingDevicePositionSequence(copy.BeamLimitingDevicePositionSequence), BeamLimitingDeviceRotationDirection(copy.BeamLimitingDeviceRotationDirection), + ChairHeadFramePosition(copy.ChairHeadFramePosition), CorrectedParameterSequence(copy.CorrectedParameterSequence), DeliveredMeterset(copy.DeliveredMeterset), GantryAngle(copy.GantryAngle), @@ -92,6 +96,8 @@ DRTIonControlPointDeliverySequence::Item::Item(const Item ©) ReferencedControlPointIndex(copy.ReferencedControlPointIndex), ScanSpotMetersetsDelivered(copy.ScanSpotMetersetsDelivered), ScanSpotPositionMap(copy.ScanSpotPositionMap), + ScanSpotPrescribedIndices(copy.ScanSpotPrescribedIndices), + ScanSpotReordered(copy.ScanSpotReordered), ScanSpotTuneID(copy.ScanSpotTuneID), ScanningSpotSize(copy.ScanningSpotSize), SnoutPosition(copy.SnoutPosition), @@ -122,6 +128,7 @@ DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::It BeamLimitingDeviceAngle = copy.BeamLimitingDeviceAngle; BeamLimitingDevicePositionSequence = copy.BeamLimitingDevicePositionSequence; BeamLimitingDeviceRotationDirection = copy.BeamLimitingDeviceRotationDirection; + ChairHeadFramePosition = copy.ChairHeadFramePosition; CorrectedParameterSequence = copy.CorrectedParameterSequence; DeliveredMeterset = copy.DeliveredMeterset; GantryAngle = copy.GantryAngle; @@ -145,6 +152,8 @@ DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::It ReferencedControlPointIndex = copy.ReferencedControlPointIndex; ScanSpotMetersetsDelivered = copy.ScanSpotMetersetsDelivered; ScanSpotPositionMap = copy.ScanSpotPositionMap; + ScanSpotPrescribedIndices = copy.ScanSpotPrescribedIndices; + ScanSpotReordered = copy.ScanSpotReordered; ScanSpotTuneID = copy.ScanSpotTuneID; ScanningSpotSize = copy.ScanningSpotSize; SnoutPosition = copy.SnoutPosition; @@ -194,6 +203,8 @@ void DRTIonControlPointDeliverySequence::Item::clear() ScanSpotMetersetsDelivered.clear(); ScanningSpotSize.clear(); NumberOfPaintings.clear(); + ScanSpotReordered.clear(); + ScanSpotPrescribedIndices.clear(); PatientSupportAngle.clear(); PatientSupportRotationDirection.clear(); TableTopPitchAngle.clear(); @@ -201,6 +212,7 @@ void DRTIonControlPointDeliverySequence::Item::clear() TableTopRollAngle.clear(); TableTopRollRotationDirection.clear(); HeadFixationAngle.clear(); + ChairHeadFramePosition.clear(); TableTopVerticalPosition.clear(); TableTopLongitudinalPosition.clear(); TableTopLateralPosition.clear(); @@ -239,6 +251,8 @@ OFBool DRTIonControlPointDeliverySequence::Item::isEmpty() ScanSpotMetersetsDelivered.isEmpty() && ScanningSpotSize.isEmpty() && NumberOfPaintings.isEmpty() && + ScanSpotReordered.isEmpty() && + ScanSpotPrescribedIndices.isEmpty() && PatientSupportAngle.isEmpty() && PatientSupportRotationDirection.isEmpty() && TableTopPitchAngle.isEmpty() && @@ -246,6 +260,7 @@ OFBool DRTIonControlPointDeliverySequence::Item::isEmpty() TableTopRollAngle.isEmpty() && TableTopRollRotationDirection.isEmpty() && HeadFixationAngle.isEmpty() && + ChairHeadFramePosition.isEmpty() && TableTopVerticalPosition.isEmpty() && TableTopLongitudinalPosition.isEmpty() && TableTopLateralPosition.isEmpty() && @@ -294,6 +309,8 @@ OFCondition DRTIonControlPointDeliverySequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ScanSpotMetersetsDelivered, "1-n", "1C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, ScanningSpotSize, "2", "3", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, NumberOfPaintings, "1", "1C", "IonControlPointDeliverySequence"); + getAndCheckElementFromDataset(item, ScanSpotReordered, "1", "3", "IonControlPointDeliverySequence"); + getAndCheckElementFromDataset(item, ScanSpotPrescribedIndices, "1-n", "1C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, PatientSupportAngle, "1", "1C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, PatientSupportRotationDirection, "1", "1C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, TableTopPitchAngle, "1", "2C", "IonControlPointDeliverySequence"); @@ -301,6 +318,7 @@ OFCondition DRTIonControlPointDeliverySequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, TableTopRollAngle, "1", "2C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, TableTopRollRotationDirection, "1", "2C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, HeadFixationAngle, "1", "3", "IonControlPointDeliverySequence"); + getAndCheckElementFromDataset(item, ChairHeadFramePosition, "1", "3", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, TableTopVerticalPosition, "1", "2C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, TableTopLongitudinalPosition, "1", "2C", "IonControlPointDeliverySequence"); getAndCheckElementFromDataset(item, TableTopLateralPosition, "1", "2C", "IonControlPointDeliverySequence"); @@ -345,6 +363,8 @@ OFCondition DRTIonControlPointDeliverySequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotMetersetsDelivered), "1-n", "1C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(ScanningSpotSize), "2", "3", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmIntegerString(NumberOfPaintings), "1", "1C", "IonControlPointDeliverySequence"); + addElementToDataset(result, item, new DcmCodeString(ScanSpotReordered), "1", "3", "IonControlPointDeliverySequence"); + addElementToDataset(result, item, new DcmIntegerString(ScanSpotPrescribedIndices), "1-n", "1C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmDecimalString(PatientSupportAngle), "1", "1C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmCodeString(PatientSupportRotationDirection), "1", "1C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopPitchAngle), "1", "2C", "IonControlPointDeliverySequence"); @@ -352,6 +372,7 @@ OFCondition DRTIonControlPointDeliverySequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngle), "1", "2C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmCodeString(TableTopRollRotationDirection), "1", "2C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(HeadFixationAngle), "1", "3", "IonControlPointDeliverySequence"); + addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePosition), "1", "3", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopVerticalPosition), "1", "2C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopLongitudinalPosition), "1", "2C", "IonControlPointDeliverySequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopLateralPosition), "1", "2C", "IonControlPointDeliverySequence"); @@ -390,6 +411,24 @@ OFCondition DRTIonControlPointDeliverySequence::Item::getBeamLimitingDeviceRotat } +OFCondition DRTIonControlPointDeliverySequence::Item::getChairHeadFramePosition(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ChairHeadFramePosition, value, pos); +} + + +OFCondition DRTIonControlPointDeliverySequence::Item::getChairHeadFramePosition(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, ChairHeadFramePosition).getFloat64(value, pos); +} + + OFCondition DRTIonControlPointDeliverySequence::Item::getDeliveredMeterset(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -615,6 +654,33 @@ OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPositionMap(Flo } +OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPrescribedIndices(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ScanSpotPrescribedIndices, value, pos); +} + + +OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPrescribedIndices(Sint32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmIntegerString &, ScanSpotPrescribedIndices).getSint32(value, pos); +} + + +OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotReordered(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ScanSpotReordered, value, pos); +} + + OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotTuneID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -794,6 +860,19 @@ OFCondition DRTIonControlPointDeliverySequence::Item::setBeamLimitingDeviceRotat } +OFCondition DRTIonControlPointDeliverySequence::Item::setChairHeadFramePosition(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ChairHeadFramePosition.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonControlPointDeliverySequence::Item::setDeliveredMeterset(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -991,6 +1070,32 @@ OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotPositionMap(con } +OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotPrescribedIndices(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmIntegerString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = ScanSpotPrescribedIndices.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotReordered(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ScanSpotReordered.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotTuneID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drticps.cc b/dcmrt/libsrc/drticps.cc index 28430e1b..d7632909 100644 --- a/dcmrt/libsrc/drticps.cc +++ b/dcmrt/libsrc/drticps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -24,6 +24,7 @@ DRTIonControlPointSequence::Item::Item(const OFBool emptyDefaultItem) BeamLimitingDeviceAngle(DCM_BeamLimitingDeviceAngle), BeamLimitingDevicePositionSequence(emptyDefaultItem /*emptyDefaultSequence*/), BeamLimitingDeviceRotationDirection(DCM_BeamLimitingDeviceRotationDirection), + ChairHeadFramePosition(DCM_ChairHeadFramePosition), ControlPointIndex(DCM_ControlPointIndex), CumulativeMetersetWeight(DCM_CumulativeMetersetWeight), ExternalContourEntryPoint(DCM_ExternalContourEntryPoint), @@ -47,6 +48,7 @@ DRTIonControlPointSequence::Item::Item(const OFBool emptyDefaultItem) ReferencedDoseReferenceSequence(emptyDefaultItem /*emptyDefaultSequence*/), ScanSpotMetersetWeights(DCM_ScanSpotMetersetWeights), ScanSpotPositionMap(DCM_ScanSpotPositionMap), + ScanSpotReorderingAllowed(DCM_ScanSpotReorderingAllowed), ScanSpotTuneID(DCM_ScanSpotTuneID), ScanningSpotSize(DCM_ScanningSpotSize), SnoutPosition(DCM_SnoutPosition), @@ -67,6 +69,7 @@ DRTIonControlPointSequence::Item::Item(const Item ©) BeamLimitingDeviceAngle(copy.BeamLimitingDeviceAngle), BeamLimitingDevicePositionSequence(copy.BeamLimitingDevicePositionSequence), BeamLimitingDeviceRotationDirection(copy.BeamLimitingDeviceRotationDirection), + ChairHeadFramePosition(copy.ChairHeadFramePosition), ControlPointIndex(copy.ControlPointIndex), CumulativeMetersetWeight(copy.CumulativeMetersetWeight), ExternalContourEntryPoint(copy.ExternalContourEntryPoint), @@ -90,6 +93,7 @@ DRTIonControlPointSequence::Item::Item(const Item ©) ReferencedDoseReferenceSequence(copy.ReferencedDoseReferenceSequence), ScanSpotMetersetWeights(copy.ScanSpotMetersetWeights), ScanSpotPositionMap(copy.ScanSpotPositionMap), + ScanSpotReorderingAllowed(copy.ScanSpotReorderingAllowed), ScanSpotTuneID(copy.ScanSpotTuneID), ScanningSpotSize(copy.ScanningSpotSize), SnoutPosition(copy.SnoutPosition), @@ -118,6 +122,7 @@ DRTIonControlPointSequence::Item &DRTIonControlPointSequence::Item::operator=(co BeamLimitingDeviceAngle = copy.BeamLimitingDeviceAngle; BeamLimitingDevicePositionSequence = copy.BeamLimitingDevicePositionSequence; BeamLimitingDeviceRotationDirection = copy.BeamLimitingDeviceRotationDirection; + ChairHeadFramePosition = copy.ChairHeadFramePosition; ControlPointIndex = copy.ControlPointIndex; CumulativeMetersetWeight = copy.CumulativeMetersetWeight; ExternalContourEntryPoint = copy.ExternalContourEntryPoint; @@ -141,6 +146,7 @@ DRTIonControlPointSequence::Item &DRTIonControlPointSequence::Item::operator=(co ReferencedDoseReferenceSequence = copy.ReferencedDoseReferenceSequence; ScanSpotMetersetWeights = copy.ScanSpotMetersetWeights; ScanSpotPositionMap = copy.ScanSpotPositionMap; + ScanSpotReorderingAllowed = copy.ScanSpotReorderingAllowed; ScanSpotTuneID = copy.ScanSpotTuneID; ScanningSpotSize = copy.ScanningSpotSize; SnoutPosition = copy.SnoutPosition; @@ -180,6 +186,7 @@ void DRTIonControlPointSequence::Item::clear() BeamLimitingDeviceAngle.clear(); BeamLimitingDeviceRotationDirection.clear(); ScanSpotTuneID.clear(); + ScanSpotReorderingAllowed.clear(); NumberOfScanSpotPositions.clear(); ScanSpotPositionMap.clear(); ScanSpotMetersetWeights.clear(); @@ -192,6 +199,7 @@ void DRTIonControlPointSequence::Item::clear() TableTopRollAngle.clear(); TableTopRollRotationDirection.clear(); HeadFixationAngle.clear(); + ChairHeadFramePosition.clear(); TableTopVerticalPosition.clear(); TableTopLongitudinalPosition.clear(); TableTopLateralPosition.clear(); @@ -223,6 +231,7 @@ OFBool DRTIonControlPointSequence::Item::isEmpty() BeamLimitingDeviceAngle.isEmpty() && BeamLimitingDeviceRotationDirection.isEmpty() && ScanSpotTuneID.isEmpty() && + ScanSpotReorderingAllowed.isEmpty() && NumberOfScanSpotPositions.isEmpty() && ScanSpotPositionMap.isEmpty() && ScanSpotMetersetWeights.isEmpty() && @@ -235,6 +244,7 @@ OFBool DRTIonControlPointSequence::Item::isEmpty() TableTopRollAngle.isEmpty() && TableTopRollRotationDirection.isEmpty() && HeadFixationAngle.isEmpty() && + ChairHeadFramePosition.isEmpty() && TableTopVerticalPosition.isEmpty() && TableTopLongitudinalPosition.isEmpty() && TableTopLateralPosition.isEmpty() && @@ -276,6 +286,7 @@ OFCondition DRTIonControlPointSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, BeamLimitingDeviceAngle, "1", "1C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, BeamLimitingDeviceRotationDirection, "1", "1C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, ScanSpotTuneID, "1", "1C", "IonControlPointSequence"); + getAndCheckElementFromDataset(item, ScanSpotReorderingAllowed, "1", "3", "IonControlPointSequence"); getAndCheckElementFromDataset(item, NumberOfScanSpotPositions, "1", "1C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, ScanSpotPositionMap, "1-n", "1C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, ScanSpotMetersetWeights, "1-n", "1C", "IonControlPointSequence"); @@ -288,6 +299,7 @@ OFCondition DRTIonControlPointSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, TableTopRollAngle, "1", "2C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, TableTopRollRotationDirection, "1", "2C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, HeadFixationAngle, "1", "3", "IonControlPointSequence"); + getAndCheckElementFromDataset(item, ChairHeadFramePosition, "1", "3", "IonControlPointSequence"); getAndCheckElementFromDataset(item, TableTopVerticalPosition, "1", "2C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, TableTopLongitudinalPosition, "1", "2C", "IonControlPointSequence"); getAndCheckElementFromDataset(item, TableTopLateralPosition, "1", "2C", "IonControlPointSequence"); @@ -325,6 +337,7 @@ OFCondition DRTIonControlPointSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmDecimalString(BeamLimitingDeviceAngle), "1", "1C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmCodeString(BeamLimitingDeviceRotationDirection), "1", "1C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmShortString(ScanSpotTuneID), "1", "1C", "IonControlPointSequence"); + addElementToDataset(result, item, new DcmCodeString(ScanSpotReorderingAllowed), "1", "3", "IonControlPointSequence"); addElementToDataset(result, item, new DcmIntegerString(NumberOfScanSpotPositions), "1", "1C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotPositionMap), "1-n", "1C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotMetersetWeights), "1-n", "1C", "IonControlPointSequence"); @@ -337,6 +350,7 @@ OFCondition DRTIonControlPointSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngle), "1", "2C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmCodeString(TableTopRollRotationDirection), "1", "2C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(HeadFixationAngle), "1", "3", "IonControlPointSequence"); + addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePosition), "1", "3", "IonControlPointSequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopVerticalPosition), "1", "2C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopLongitudinalPosition), "1", "2C", "IonControlPointSequence"); addElementToDataset(result, item, new DcmDecimalString(TableTopLateralPosition), "1", "2C", "IonControlPointSequence"); @@ -376,6 +390,24 @@ OFCondition DRTIonControlPointSequence::Item::getBeamLimitingDeviceRotationDirec } +OFCondition DRTIonControlPointSequence::Item::getChairHeadFramePosition(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ChairHeadFramePosition, value, pos); +} + + +OFCondition DRTIonControlPointSequence::Item::getChairHeadFramePosition(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, ChairHeadFramePosition).getFloat64(value, pos); +} + + OFCondition DRTIonControlPointSequence::Item::getControlPointIndex(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -628,6 +660,15 @@ OFCondition DRTIonControlPointSequence::Item::getScanSpotPositionMap(Float32 &va } +OFCondition DRTIonControlPointSequence::Item::getScanSpotReorderingAllowed(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ScanSpotReorderingAllowed, value, pos); +} + + OFCondition DRTIonControlPointSequence::Item::getScanSpotTuneID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -798,6 +839,19 @@ OFCondition DRTIonControlPointSequence::Item::setBeamLimitingDeviceRotationDirec } +OFCondition DRTIonControlPointSequence::Item::setChairHeadFramePosition(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ChairHeadFramePosition.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonControlPointSequence::Item::setControlPointIndex(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -1008,6 +1062,19 @@ OFCondition DRTIonControlPointSequence::Item::setScanSpotPositionMap(const Float } +OFCondition DRTIonControlPointSequence::Item::setScanSpotReorderingAllowed(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ScanSpotReorderingAllowed.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonControlPointSequence::Item::setScanSpotTuneID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtics.cc b/dcmrt/libsrc/drtics.cc index cc4ab0a0..edc3c1a6 100644 --- a/dcmrt/libsrc/drtics.cc +++ b/dcmrt/libsrc/drtics.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTInstitutionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTInstitutionCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTInstitutionCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::Item::operator=(co EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTInstitutionCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTInstitutionCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTInstitutionCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "InstitutionCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "InstitutionCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "InstitutionCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "InstitutionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "InstitutionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "InstitutionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "InstitutionCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTInstitutionCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "InstitutionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "InstitutionCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "InstitutionCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "InstitutionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "InstitutionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "InstitutionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "InstitutionCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTInstitutionCodeSequence::Item::getMappingResource(OFString &value } +OFCondition DRTInstitutionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTInstitutionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTInstitutionCodeSequence::Item::setMappingResource(const OFString } +OFCondition DRTInstitutionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTInstitutionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtiis.cc b/dcmrt/libsrc/drtiis.cc index 145601cf..b8dea8a1 100644 --- a/dcmrt/libsrc/drtiis.cc +++ b/dcmrt/libsrc/drtiis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIconImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -25,6 +25,7 @@ DRTIconImageSequence::Item::Item(const OFBool emptyDefaultItem) BitsStored(DCM_BitsStored), BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData), BluePaletteColorLookupTableDescriptor(DCM_BluePaletteColorLookupTableDescriptor), + ColorSpace(DCM_ColorSpace), Columns(DCM_Columns), GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData), GreenPaletteColorLookupTableDescriptor(DCM_GreenPaletteColorLookupTableDescriptor), @@ -51,6 +52,7 @@ DRTIconImageSequence::Item::Item(const Item ©) BitsStored(copy.BitsStored), BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData), BluePaletteColorLookupTableDescriptor(copy.BluePaletteColorLookupTableDescriptor), + ColorSpace(copy.ColorSpace), Columns(copy.Columns), GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData), GreenPaletteColorLookupTableDescriptor(copy.GreenPaletteColorLookupTableDescriptor), @@ -85,6 +87,7 @@ DRTIconImageSequence::Item &DRTIconImageSequence::Item::operator=(const Item &co BitsStored = copy.BitsStored; BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData; BluePaletteColorLookupTableDescriptor = copy.BluePaletteColorLookupTableDescriptor; + ColorSpace = copy.ColorSpace; Columns = copy.Columns; GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData; GreenPaletteColorLookupTableDescriptor = copy.GreenPaletteColorLookupTableDescriptor; @@ -119,7 +122,6 @@ void DRTIconImageSequence::Item::clear() BitsStored.clear(); HighBit.clear(); PixelRepresentation.clear(); - PixelData.clear(); PlanarConfiguration.clear(); PixelAspectRatio.clear(); SmallestImagePixelValue.clear(); @@ -131,6 +133,8 @@ void DRTIconImageSequence::Item::clear() GreenPaletteColorLookupTableData.clear(); BluePaletteColorLookupTableData.clear(); ICCProfile.clear(); + ColorSpace.clear(); + PixelData.clear(); } } @@ -145,7 +149,6 @@ OFBool DRTIconImageSequence::Item::isEmpty() BitsStored.isEmpty() && HighBit.isEmpty() && PixelRepresentation.isEmpty() && - PixelData.isEmpty() && PlanarConfiguration.isEmpty() && PixelAspectRatio.isEmpty() && SmallestImagePixelValue.isEmpty() && @@ -156,7 +159,9 @@ OFBool DRTIconImageSequence::Item::isEmpty() RedPaletteColorLookupTableData.isEmpty() && GreenPaletteColorLookupTableData.isEmpty() && BluePaletteColorLookupTableData.isEmpty() && - ICCProfile.isEmpty(); + ICCProfile.isEmpty() && + ColorSpace.isEmpty() && + PixelData.isEmpty(); } @@ -181,7 +186,6 @@ OFCondition DRTIconImageSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, BitsStored, "1", "1", "IconImageSequence"); getAndCheckElementFromDataset(item, HighBit, "1", "1", "IconImageSequence"); getAndCheckElementFromDataset(item, PixelRepresentation, "1", "1", "IconImageSequence"); - getAndCheckElementFromDataset(item, PixelData, "1", "1C", "IconImageSequence"); getAndCheckElementFromDataset(item, PlanarConfiguration, "1", "1C", "IconImageSequence"); getAndCheckElementFromDataset(item, PixelAspectRatio, "2", "1C", "IconImageSequence"); getAndCheckElementFromDataset(item, SmallestImagePixelValue, "1", "3", "IconImageSequence"); @@ -193,6 +197,8 @@ OFCondition DRTIconImageSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, GreenPaletteColorLookupTableData, "1", "1C", "IconImageSequence"); getAndCheckElementFromDataset(item, BluePaletteColorLookupTableData, "1", "1C", "IconImageSequence"); getAndCheckElementFromDataset(item, ICCProfile, "1", "3", "IconImageSequence"); + getAndCheckElementFromDataset(item, ColorSpace, "1", "3", "IconImageSequence"); + getAndCheckElementFromDataset(item, PixelData, "1", "1", "IconImageSequence"); result = EC_Normal; } return result; @@ -213,7 +219,6 @@ OFCondition DRTIconImageSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUnsignedShort(BitsStored), "1", "1", "IconImageSequence"); addElementToDataset(result, item, new DcmUnsignedShort(HighBit), "1", "1", "IconImageSequence"); addElementToDataset(result, item, new DcmUnsignedShort(PixelRepresentation), "1", "1", "IconImageSequence"); - addElementToDataset(result, item, new DcmPixelData(PixelData), "1", "1C", "IconImageSequence"); addElementToDataset(result, item, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "IconImageSequence"); addElementToDataset(result, item, new DcmIntegerString(PixelAspectRatio), "2", "1C", "IconImageSequence"); addElementToDataset(result, item, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "IconImageSequence"); @@ -225,6 +230,8 @@ OFCondition DRTIconImageSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "IconImageSequence"); addElementToDataset(result, item, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "IconImageSequence"); addElementToDataset(result, item, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "IconImageSequence"); + addElementToDataset(result, item, new DcmCodeString(ColorSpace), "1", "3", "IconImageSequence"); + addElementToDataset(result, item, new DcmPixelData(PixelData), "1", "1", "IconImageSequence"); } return result; } @@ -276,6 +283,15 @@ OFCondition DRTIconImageSequence::Item::getBluePaletteColorLookupTableDescriptor } +OFCondition DRTIconImageSequence::Item::getColorSpace(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ColorSpace, value, pos); +} + + OFCondition DRTIconImageSequence::Item::getColumns(Uint16 &value, const unsigned long pos) const { if (EmptyDefaultItem) @@ -486,6 +502,19 @@ OFCondition DRTIconImageSequence::Item::setBluePaletteColorLookupTableDescriptor } +OFCondition DRTIconImageSequence::Item::setColorSpace(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ColorSpace.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIconImageSequence::Item::setColumns(const Uint16 value, const unsigned long pos) { if (EmptyDefaultItem) diff --git a/dcmrt/libsrc/drtimage.cc b/dcmrt/libsrc/drtimage.cc index f55e999e..b22ed9b5 100644 --- a/dcmrt/libsrc/drtimage.cc +++ b/dcmrt/libsrc/drtimage.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTImageIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,6 +23,9 @@ DRTImageIOD::DRTImageIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTImageIOD::DRTImageIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTImageIOD::DRTImageIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTImageIOD::DRTImageIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -121,6 +141,7 @@ DRTImageIOD::DRTImageIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -133,11 +154,6 @@ DRTImageIOD::DRTImageIOD() AcquisitionDate(DCM_AcquisitionDate), AcquisitionTime(DCM_AcquisitionTime), AcquisitionDateTime(DCM_AcquisitionDateTime), - ReferencedImageSequence(), - DerivationDescription(DCM_DerivationDescription), - DerivationCodeSequence(), - SourceImageSequence(), - ReferencedInstanceSequence(), ImagesInAcquisition(DCM_ImagesInAcquisition), ImageComments(DCM_ImageComments), QualityControlImage(DCM_QualityControlImage), @@ -150,9 +166,14 @@ DRTImageIOD::DRTImageIOD() PresentationLUTShape(DCM_PresentationLUTShape), IrradiationEventUID(DCM_IrradiationEventUID), RealWorldValueMappingSequence(), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), Rows(DCM_Rows), Columns(DCM_Columns), - PixelData(DCM_PixelData), PlanarConfiguration(DCM_PlanarConfiguration), PixelAspectRatio(DCM_PixelAspectRatio), SmallestImagePixelValue(DCM_SmallestImagePixelValue), @@ -164,6 +185,8 @@ DRTImageIOD::DRTImageIOD() GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData), BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData), ICCProfile(DCM_ICCProfile), + ColorSpace(DCM_ColorSpace), + PixelData(DCM_PixelData), PixelDataProviderURL(DCM_PixelDataProviderURL), PixelPaddingRangeLimit(DCM_PixelPaddingRangeLimit), ContrastBolusAgent(DCM_ContrastBolusAgent), @@ -241,6 +264,9 @@ DRTImageIOD::DRTImageIOD() TableTopLateralPosition(DCM_TableTopLateralPosition), IsocenterPosition(DCM_IsocenterPosition), PatientPosition(DCM_PatientPosition), + ExposureTime(DCM_ExposureTime), + ExposureTimeInms(DCM_ExposureTimeInms), + MetersetExposure(DCM_MetersetExposure), ModalityLUTSequence(), RescaleIntercept(DCM_RescaleIntercept), RescaleSlope(DCM_RescaleSlope), @@ -264,6 +290,8 @@ DRTImageIOD::DRTImageIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -295,6 +323,9 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -310,12 +341,19 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -349,7 +387,16 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -369,6 +416,7 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -393,6 +441,7 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -405,11 +454,6 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) AcquisitionDate(copy.AcquisitionDate), AcquisitionTime(copy.AcquisitionTime), AcquisitionDateTime(copy.AcquisitionDateTime), - ReferencedImageSequence(copy.ReferencedImageSequence), - DerivationDescription(copy.DerivationDescription), - DerivationCodeSequence(copy.DerivationCodeSequence), - SourceImageSequence(copy.SourceImageSequence), - ReferencedInstanceSequence(copy.ReferencedInstanceSequence), ImagesInAcquisition(copy.ImagesInAcquisition), ImageComments(copy.ImageComments), QualityControlImage(copy.QualityControlImage), @@ -422,9 +466,14 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) PresentationLUTShape(copy.PresentationLUTShape), IrradiationEventUID(copy.IrradiationEventUID), RealWorldValueMappingSequence(copy.RealWorldValueMappingSequence), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), Rows(copy.Rows), Columns(copy.Columns), - PixelData(copy.PixelData), PlanarConfiguration(copy.PlanarConfiguration), PixelAspectRatio(copy.PixelAspectRatio), SmallestImagePixelValue(copy.SmallestImagePixelValue), @@ -436,6 +485,8 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData), BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData), ICCProfile(copy.ICCProfile), + ColorSpace(copy.ColorSpace), + PixelData(copy.PixelData), PixelDataProviderURL(copy.PixelDataProviderURL), PixelPaddingRangeLimit(copy.PixelPaddingRangeLimit), ContrastBolusAgent(copy.ContrastBolusAgent), @@ -513,6 +564,9 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) TableTopLateralPosition(copy.TableTopLateralPosition), IsocenterPosition(copy.IsocenterPosition), PatientPosition(copy.PatientPosition), + ExposureTime(copy.ExposureTime), + ExposureTimeInms(copy.ExposureTimeInms), + MetersetExposure(copy.MetersetExposure), ModalityLUTSequence(copy.ModalityLUTSequence), RescaleIntercept(copy.RescaleIntercept), RescaleSlope(copy.RescaleSlope), @@ -536,6 +590,8 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD ©) RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -573,6 +629,9 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -588,12 +647,19 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -627,7 +693,16 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -647,6 +722,7 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -671,6 +747,7 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -683,11 +760,6 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) AcquisitionDate = copy.AcquisitionDate; AcquisitionTime = copy.AcquisitionTime; AcquisitionDateTime = copy.AcquisitionDateTime; - ReferencedImageSequence = copy.ReferencedImageSequence; - DerivationDescription = copy.DerivationDescription; - DerivationCodeSequence = copy.DerivationCodeSequence; - SourceImageSequence = copy.SourceImageSequence; - ReferencedInstanceSequence = copy.ReferencedInstanceSequence; ImagesInAcquisition = copy.ImagesInAcquisition; ImageComments = copy.ImageComments; QualityControlImage = copy.QualityControlImage; @@ -700,9 +772,14 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) PresentationLUTShape = copy.PresentationLUTShape; IrradiationEventUID = copy.IrradiationEventUID; RealWorldValueMappingSequence = copy.RealWorldValueMappingSequence; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; Rows = copy.Rows; Columns = copy.Columns; - PixelData = copy.PixelData; PlanarConfiguration = copy.PlanarConfiguration; PixelAspectRatio = copy.PixelAspectRatio; SmallestImagePixelValue = copy.SmallestImagePixelValue; @@ -714,6 +791,8 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData; BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData; ICCProfile = copy.ICCProfile; + ColorSpace = copy.ColorSpace; + PixelData = copy.PixelData; PixelDataProviderURL = copy.PixelDataProviderURL; PixelPaddingRangeLimit = copy.PixelPaddingRangeLimit; ContrastBolusAgent = copy.ContrastBolusAgent; @@ -791,6 +870,9 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) TableTopLateralPosition = copy.TableTopLateralPosition; IsocenterPosition = copy.IsocenterPosition; PatientPosition = copy.PatientPosition; + ExposureTime = copy.ExposureTime; + ExposureTimeInms = copy.ExposureTimeInms; + MetersetExposure = copy.MetersetExposure; ModalityLUTSequence = copy.ModalityLUTSequence; RescaleIntercept = copy.RescaleIntercept; RescaleSlope = copy.RescaleSlope; @@ -814,6 +896,8 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD ©) RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -846,6 +930,9 @@ void DRTImageIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -861,12 +948,19 @@ void DRTImageIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -900,7 +994,16 @@ void DRTImageIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -920,6 +1023,7 @@ void DRTImageIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -944,6 +1048,7 @@ void DRTImageIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -957,11 +1062,6 @@ void DRTImageIOD::clear() AcquisitionDate.clear(); AcquisitionTime.clear(); AcquisitionDateTime.clear(); - ReferencedImageSequence.clear(); - DerivationDescription.clear(); - DerivationCodeSequence.clear(); - SourceImageSequence.clear(); - ReferencedInstanceSequence.clear(); ImagesInAcquisition.clear(); ImageComments.clear(); QualityControlImage.clear(); @@ -974,6 +1074,12 @@ void DRTImageIOD::clear() PresentationLUTShape.clear(); IrradiationEventUID.clear(); RealWorldValueMappingSequence.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SamplesPerPixel.clear(); PhotometricInterpretation.clear(); Rows.clear(); @@ -982,7 +1088,6 @@ void DRTImageIOD::clear() BitsStored.clear(); HighBit.clear(); PixelRepresentation.clear(); - PixelData.clear(); PlanarConfiguration.clear(); PixelAspectRatio.clear(); SmallestImagePixelValue.clear(); @@ -994,6 +1099,8 @@ void DRTImageIOD::clear() GreenPaletteColorLookupTableData.clear(); BluePaletteColorLookupTableData.clear(); ICCProfile.clear(); + ColorSpace.clear(); + PixelData.clear(); PixelDataProviderURL.clear(); PixelPaddingRangeLimit.clear(); ContrastBolusAgent.clear(); @@ -1064,6 +1171,9 @@ void DRTImageIOD::clear() TableTopLateralPosition.clear(); IsocenterPosition.clear(); PatientPosition.clear(); + ExposureTime.clear(); + ExposureTimeInms.clear(); + MetersetExposure.clear(); ModalityLUTSequence.clear(); RescaleIntercept.clear(); RescaleSlope.clear(); @@ -1087,6 +1197,8 @@ void DRTImageIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -1171,6 +1283,7 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -1186,11 +1299,6 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, AcquisitionDate, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, AcquisitionTime, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, AcquisitionDateTime, "1", "3", "GeneralImageModule"); - ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralImageModule"); - DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - SourceImageSequence.read(dataset, "1-n", "3", "GeneralImageModule"); - ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, ImagesInAcquisition, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, ImageComments, "1", "3", "GeneralImageModule"); getAndCheckElementFromDataset(dataset, QualityControlImage, "1", "3", "GeneralImageModule"); @@ -1204,6 +1312,14 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IrradiationEventUID, "1-n", "3", "GeneralImageModule"); RealWorldValueMappingSequence.read(dataset, "1-n", "3", "GeneralImageModule"); + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- ImagePixelModule (M) --- // getAndCheckElementFromDataset(dataset, SamplesPerPixel, "1", "1", "ImagePixelModule"); // getAndCheckElementFromDataset(dataset, PhotometricInterpretation, "1", "1", "ImagePixelModule"); @@ -1213,7 +1329,6 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) // getAndCheckElementFromDataset(dataset, BitsStored, "1", "1", "ImagePixelModule"); // getAndCheckElementFromDataset(dataset, HighBit, "1", "1", "ImagePixelModule"); // getAndCheckElementFromDataset(dataset, PixelRepresentation, "1", "1", "ImagePixelModule"); - getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PlanarConfiguration, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelAspectRatio, "2", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, SmallestImagePixelValue, "1", "3", "ImagePixelModule"); @@ -1225,6 +1340,8 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, GreenPaletteColorLookupTableData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, BluePaletteColorLookupTableData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, ICCProfile, "1", "3", "ImagePixelModule"); + getAndCheckElementFromDataset(dataset, ColorSpace, "1", "3", "ImagePixelModule"); + getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelDataProviderURL, "1", "1C", "ImagePixelModule"); getAndCheckElementFromDataset(dataset, PixelPaddingRangeLimit, "1", "1C", "ImagePixelModule"); @@ -1322,6 +1439,9 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, TableTopLateralPosition, "1", "3", "RTImageModule"); getAndCheckElementFromDataset(dataset, IsocenterPosition, "3", "3", "RTImageModule"); getAndCheckElementFromDataset(dataset, PatientPosition, "1", "1C", "RTImageModule"); + getAndCheckElementFromDataset(dataset, ExposureTime, "1", "3", "RTImageModule"); + getAndCheckElementFromDataset(dataset, ExposureTimeInms, "1", "3", "RTImageModule"); + getAndCheckElementFromDataset(dataset, MetersetExposure, "1", "3", "RTImageModule"); // --- ModalityLUTModule (U) --- ModalityLUTSequence.read(dataset, "1-n", "1C", "ModalityLUTModule"); @@ -1356,6 +1476,8 @@ OFCondition DRTImageIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -1398,6 +1520,9 @@ OFCondition DRTImageIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -1413,12 +1538,19 @@ OFCondition DRTImageIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -1474,7 +1606,16 @@ OFCondition DRTImageIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -1511,6 +1652,7 @@ OFCondition DRTImageIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -1549,6 +1691,9 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -1564,12 +1709,19 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1614,7 +1766,16 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1642,6 +1803,7 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1678,6 +1840,7 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1693,11 +1856,6 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmDate(AcquisitionDate), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmTime(AcquisitionTime), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmDateTime(AcquisitionDateTime), "1", "3", "GeneralImageModule"); - if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralImageModule"); - if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); - if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmIntegerString(ImagesInAcquisition), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmLongText(ImageComments), "1", "3", "GeneralImageModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlImage), "1", "3", "GeneralImageModule"); @@ -1711,6 +1869,17 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(IrradiationEventUID), "1-n", "3", "GeneralImageModule"); if (result.good()) result = RealWorldValueMappingSequence.write(dataset, "1-n" ,"3", "GeneralImageModule"); + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- ImagePixelModule (M) --- // addElementToDataset(result, dataset, new DcmUnsignedShort(SamplesPerPixel), "1", "1", "ImagePixelModule"); // addElementToDataset(result, dataset, new DcmCodeString(PhotometricInterpretation), "1", "1", "ImagePixelModule"); @@ -1720,7 +1889,6 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) // addElementToDataset(result, dataset, new DcmUnsignedShort(BitsStored), "1", "1", "ImagePixelModule"); // addElementToDataset(result, dataset, new DcmUnsignedShort(HighBit), "1", "1", "ImagePixelModule"); // addElementToDataset(result, dataset, new DcmUnsignedShort(PixelRepresentation), "1", "1", "ImagePixelModule"); - addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmIntegerString(PixelAspectRatio), "2", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "ImagePixelModule"); @@ -1732,6 +1900,8 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "ImagePixelModule"); + addElementToDataset(result, dataset, new DcmCodeString(ColorSpace), "1", "3", "ImagePixelModule"); + addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUniversalResourceIdentifierOrLocator(PixelDataProviderURL), "1", "1C", "ImagePixelModule"); addElementToDataset(result, dataset, new DcmUnsignedShort(PixelPaddingRangeLimit), "1", "1C", "ImagePixelModule"); @@ -1831,6 +2001,9 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmDecimalString(TableTopLateralPosition), "1", "3", "RTImageModule"); addElementToDataset(result, dataset, new DcmDecimalString(IsocenterPosition), "3", "3", "RTImageModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientPosition), "1", "1C", "RTImageModule"); + addElementToDataset(result, dataset, new DcmIntegerString(ExposureTime), "1", "3", "RTImageModule"); + addElementToDataset(result, dataset, new DcmFloatingPointDouble(ExposureTimeInms), "1", "3", "RTImageModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MetersetExposure), "1", "3", "RTImageModule"); // --- ModalityLUTModule (U) --- if (isModalityLUTModulePresent(OFFalse /*complete*/)) @@ -1871,6 +2044,8 @@ OFCondition DRTImageIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1937,7 +2112,16 @@ OFBool DRTImageIOD::isPatientStudyModulePresent(const OFBool /*complete*/) !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1981,6 +2165,18 @@ OFBool DRTImageIOD::isFrameOfReferenceModulePresent(const OFBool complete) } +OFBool DRTImageIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTImageIOD::isContrastBolusModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -2158,6 +2354,12 @@ OFCondition DRTImageIOD::getAdmittingDiagnosesDescription(OFString &value, const } +OFCondition DRTImageIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTImageIOD::getApprovalStatus(OFString &value, const signed long pos) const { return getStringValueFromElement(ApprovalStatus, value, pos); @@ -2317,6 +2519,12 @@ OFCondition DRTImageIOD::getClinicalTrialTimePointID(OFString &value, const sign } +OFCondition DRTImageIOD::getColorSpace(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(ColorSpace, value, pos); +} + + OFCondition DRTImageIOD::getColumns(Uint16 &value, const unsigned long pos) const { return OFconst_cast(DcmUnsignedShort &, Columns).getUint16(value, pos); @@ -2515,6 +2723,24 @@ OFCondition DRTImageIOD::getEthnicGroup(OFString &value, const signed long pos) } +OFCondition DRTImageIOD::getExposureTime(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(ExposureTime, value, pos); +} + + +OFCondition DRTImageIOD::getExposureTime(Sint32 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmIntegerString &, ExposureTime).getSint32(value, pos); +} + + +OFCondition DRTImageIOD::getExposureTimeInms(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmFloatingPointDouble &, ExposureTimeInms).getFloat64(value, pos); +} + + OFCondition DRTImageIOD::getFractionNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(FractionNumber, value, pos); @@ -2791,6 +3017,12 @@ OFCondition DRTImageIOD::getLargestImagePixelValue(Uint16 &value, const unsigned } +OFCondition DRTImageIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTImageIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -2839,6 +3071,48 @@ OFCondition DRTImageIOD::getManufacturerModelName(OFString &value, const signed } +OFCondition DRTImageIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTImageIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTImageIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTImageIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTImageIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + +OFCondition DRTImageIOD::getMetersetExposure(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MetersetExposure, value, pos); +} + + +OFCondition DRTImageIOD::getMetersetExposure(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MetersetExposure).getFloat64(value, pos); +} + + OFCondition DRTImageIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -2899,18 +3173,42 @@ OFCondition DRTImageIOD::getPatientAge(OFString &value, const signed long pos) c } +OFCondition DRTImageIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTImageIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTImageIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTImageIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTImageIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTImageIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTImageIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -2923,6 +3221,12 @@ OFCondition DRTImageIOD::getPatientComments(OFString &value, const signed long p } +OFCondition DRTImageIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTImageIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -2983,6 +3287,12 @@ OFCondition DRTImageIOD::getPatientSpeciesDescription(OFString &value, const sig } +OFCondition DRTImageIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTImageIOD::getPatientSupportAngle(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientSupportAngle, value, pos); @@ -3121,6 +3431,12 @@ OFCondition DRTImageIOD::getPreferredPlaybackSequencing(Uint16 &value, const uns } +OFCondition DRTImageIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTImageIOD::getPresentationLUTShape(OFString &value, const signed long pos) const { return getStringValueFromElement(PresentationLUTShape, value, pos); @@ -3496,6 +3812,12 @@ OFCondition DRTImageIOD::getSmallestImagePixelValue(Uint16 &value, const unsigne } +OFCondition DRTImageIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTImageIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -3580,6 +3902,24 @@ OFCondition DRTImageIOD::getStopTrim(Sint32 &value, const unsigned long pos) con } +OFCondition DRTImageIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTImageIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTImageIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTImageIOD::getStudyDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StudyDate, value, pos); @@ -3853,6 +4193,15 @@ OFCondition DRTImageIOD::setAdmittingDiagnosesDescription(const OFString &value, } +OFCondition DRTImageIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setApprovalStatus(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4048,6 +4397,15 @@ OFCondition DRTImageIOD::setClinicalTrialTimePointID(const OFString &value, cons } +OFCondition DRTImageIOD::setColorSpace(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ColorSpace.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setColumns(const Uint16 value, const unsigned long pos) { return Columns.putUint16(value, pos); @@ -4261,6 +4619,21 @@ OFCondition DRTImageIOD::setEthnicGroup(const OFString &value, const OFBool chec } +OFCondition DRTImageIOD::setExposureTime(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ExposureTime.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setExposureTimeInms(const Float64 value, const unsigned long pos) +{ + return ExposureTimeInms.putFloat64(value, pos); +} + + OFCondition DRTImageIOD::setFractionNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal; @@ -4513,6 +4886,15 @@ OFCondition DRTImageIOD::setLargestImagePixelValue(const Uint16 value, const uns } +OFCondition DRTImageIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4567,6 +4949,42 @@ OFCondition DRTImageIOD::setManufacturerModelName(const OFString &value, const O } +OFCondition DRTImageIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setMetersetExposure(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MetersetExposure.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -4648,6 +5066,15 @@ OFCondition DRTImageIOD::setPatientAge(const OFString &value, const OFBool check } +OFCondition DRTImageIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -4657,6 +5084,15 @@ OFCondition DRTImageIOD::setPatientBirthDate(const OFString &value, const OFBool } +OFCondition DRTImageIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -4666,6 +5102,15 @@ OFCondition DRTImageIOD::setPatientBirthTime(const OFString &value, const OFBool } +OFCondition DRTImageIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -4684,6 +5129,15 @@ OFCondition DRTImageIOD::setPatientComments(const OFString &value, const OFBool } +OFCondition DRTImageIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -4765,6 +5219,15 @@ OFCondition DRTImageIOD::setPatientSpeciesDescription(const OFString &value, con } +OFCondition DRTImageIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setPatientSupportAngle(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -4927,6 +5390,12 @@ OFCondition DRTImageIOD::setPreferredPlaybackSequencing(const Uint16 value, cons } +OFCondition DRTImageIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTImageIOD::setPresentationLUTShape(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -5344,6 +5813,15 @@ OFCondition DRTImageIOD::setSmallestImagePixelValue(const Uint16 value, const un } +OFCondition DRTImageIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -5425,6 +5903,33 @@ OFCondition DRTImageIOD::setStopTrim(const OFString &value, const OFBool check) } +OFCondition DRTImageIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTImageIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTImageIOD::setStudyDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drtionpl.cc b/dcmrt/libsrc/drtionpl.cc index 52b22af2..0fd0a2cf 100644 --- a/dcmrt/libsrc/drtionpl.cc +++ b/dcmrt/libsrc/drtionpl.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonPlanIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,6 +23,9 @@ DRTIonPlanIOD::DRTIonPlanIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTIonPlanIOD::DRTIonPlanIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTIonPlanIOD::DRTIonPlanIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTIonPlanIOD::DRTIonPlanIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -121,6 +141,7 @@ DRTIonPlanIOD::DRTIonPlanIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -138,6 +159,7 @@ DRTIonPlanIOD::DRTIonPlanIOD() ReferencedStructureSetSequence(), ReferencedDoseSequence(), ReferencedRTPlanSequence(), + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(DCM_FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), PrescriptionDescription(DCM_PrescriptionDescription), DoseReferenceSequence(), IonToleranceTableSequence(), @@ -148,6 +170,12 @@ DRTIonPlanIOD::DRTIonPlanIOD() ReviewDate(DCM_ReviewDate), ReviewTime(DCM_ReviewTime), ReviewerName(DCM_ReviewerName), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), SOPClassUID(DCM_SOPClassUID), SOPInstanceUID(DCM_SOPInstanceUID), SpecificCharacterSet(DCM_SpecificCharacterSet), @@ -158,6 +186,8 @@ DRTIonPlanIOD::DRTIonPlanIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -188,6 +218,9 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -203,12 +236,19 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -242,7 +282,16 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -262,6 +311,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -286,6 +336,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -303,6 +354,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) ReferencedStructureSetSequence(copy.ReferencedStructureSetSequence), ReferencedDoseSequence(copy.ReferencedDoseSequence), ReferencedRTPlanSequence(copy.ReferencedRTPlanSequence), + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), PrescriptionDescription(copy.PrescriptionDescription), DoseReferenceSequence(copy.DoseReferenceSequence), IonToleranceTableSequence(copy.IonToleranceTableSequence), @@ -313,6 +365,12 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) ReviewDate(copy.ReviewDate), ReviewTime(copy.ReviewTime), ReviewerName(copy.ReviewerName), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), SOPClassUID(copy.SOPClassUID), SOPInstanceUID(copy.SOPInstanceUID), SpecificCharacterSet(copy.SpecificCharacterSet), @@ -323,6 +381,8 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD ©) RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -359,6 +419,9 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -374,12 +437,19 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -413,7 +483,16 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -433,6 +512,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -457,6 +537,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -474,6 +555,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) ReferencedStructureSetSequence = copy.ReferencedStructureSetSequence; ReferencedDoseSequence = copy.ReferencedDoseSequence; ReferencedRTPlanSequence = copy.ReferencedRTPlanSequence; + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix = copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix; PrescriptionDescription = copy.PrescriptionDescription; DoseReferenceSequence = copy.DoseReferenceSequence; IonToleranceTableSequence = copy.IonToleranceTableSequence; @@ -484,6 +566,12 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) ReviewDate = copy.ReviewDate; ReviewTime = copy.ReviewTime; ReviewerName = copy.ReviewerName; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; SOPClassUID = copy.SOPClassUID; SOPInstanceUID = copy.SOPInstanceUID; SpecificCharacterSet = copy.SpecificCharacterSet; @@ -494,6 +582,8 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD ©) RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -525,6 +615,9 @@ void DRTIonPlanIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -540,12 +633,19 @@ void DRTIonPlanIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -579,7 +679,16 @@ void DRTIonPlanIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -599,6 +708,7 @@ void DRTIonPlanIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -623,6 +733,7 @@ void DRTIonPlanIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -640,6 +751,7 @@ void DRTIonPlanIOD::clear() ReferencedStructureSetSequence.clear(); ReferencedDoseSequence.clear(); ReferencedRTPlanSequence.clear(); + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.clear(); PrescriptionDescription.clear(); DoseReferenceSequence.clear(); IonToleranceTableSequence.clear(); @@ -650,6 +762,12 @@ void DRTIonPlanIOD::clear() ReviewDate.clear(); ReviewTime.clear(); ReviewerName.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SOPClassUID.clear(); SOPInstanceUID.clear(); SpecificCharacterSet.clear(); @@ -660,6 +778,8 @@ void DRTIonPlanIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -739,6 +859,7 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -758,6 +879,7 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset) ReferencedStructureSetSequence.read(dataset, "1-n", "1C", "RTGeneralPlanModule"); ReferencedDoseSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule"); ReferencedRTPlanSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule"); + getAndCheckElementFromDataset(dataset, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix, "16", "3", "RTGeneralPlanModule"); // --- RTPrescriptionModule (U) --- getAndCheckElementFromDataset(dataset, PrescriptionDescription, "1", "3", "RTPrescriptionModule"); @@ -796,6 +918,14 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- SOPCommonModule (M) --- getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule"); @@ -807,6 +937,8 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -843,6 +975,9 @@ OFCondition DRTIonPlanIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -858,12 +993,19 @@ OFCondition DRTIonPlanIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -919,7 +1061,16 @@ OFCondition DRTIonPlanIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -956,6 +1107,7 @@ OFCondition DRTIonPlanIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -994,6 +1146,9 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -1009,12 +1164,19 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1059,7 +1221,16 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1087,6 +1258,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1120,6 +1292,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1139,6 +1312,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) if (result.good()) result = ReferencedStructureSetSequence.write(dataset, "1-n" ,"1C", "RTGeneralPlanModule"); if (result.good()) result = ReferencedDoseSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule"); if (result.good()) result = ReferencedRTPlanSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule"); + addElementToDataset(result, dataset, new DcmFloatingPointDouble(FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), "16", "3", "RTGeneralPlanModule"); // --- RTPrescriptionModule (U) --- if (isRTPrescriptionModulePresent(OFFalse /*complete*/)) @@ -1180,6 +1354,17 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- SOPCommonModule (M) --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule"); @@ -1191,6 +1376,8 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1251,7 +1438,16 @@ OFBool DRTIonPlanIOD::isPatientStudyModulePresent(const OFBool /*complete*/) !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1333,6 +1529,18 @@ OFBool DRTIonPlanIOD::isApprovalModulePresent(const OFBool complete) } +OFBool DRTIonPlanIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTIonPlanIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -1365,6 +1573,12 @@ OFCondition DRTIonPlanIOD::getAdmittingDiagnosesDescription(OFString &value, con } +OFCondition DRTIonPlanIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTIonPlanIOD::getApprovalStatus(OFString &value, const signed long pos) const { return getStringValueFromElement(ApprovalStatus, value, pos); @@ -1491,6 +1705,12 @@ OFCondition DRTIonPlanIOD::getDeidentificationMethod(OFString &value, const sign } +OFCondition DRTIonPlanIOD::getDerivationDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(DerivationDescription, value, pos); +} + + OFCondition DRTIonPlanIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -1503,6 +1723,12 @@ OFCondition DRTIonPlanIOD::getEthnicGroup(OFString &value, const signed long pos } +OFCondition DRTIonPlanIOD::getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmFloatingPointDouble &, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix).getFloat64(value, pos); +} + + OFCondition DRTIonPlanIOD::getFrameOfReferenceUID(OFString &value, const signed long pos) const { return getStringValueFromElement(FrameOfReferenceUID, value, pos); @@ -1575,6 +1801,12 @@ OFCondition DRTIonPlanIOD::getIssuerOfPatientID(OFString &value, const signed lo } +OFCondition DRTIonPlanIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTIonPlanIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -1593,6 +1825,36 @@ OFCondition DRTIonPlanIOD::getManufacturerModelName(OFString &value, const signe } +OFCondition DRTIonPlanIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTIonPlanIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTIonPlanIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTIonPlanIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTIonPlanIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTIonPlanIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -1641,18 +1903,42 @@ OFCondition DRTIonPlanIOD::getPatientAge(OFString &value, const signed long pos) } +OFCondition DRTIonPlanIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTIonPlanIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTIonPlanIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTIonPlanIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTIonPlanIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTIonPlanIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTIonPlanIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -1665,6 +1951,12 @@ OFCondition DRTIonPlanIOD::getPatientComments(OFString &value, const signed long } +OFCondition DRTIonPlanIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTIonPlanIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -1713,6 +2005,12 @@ OFCondition DRTIonPlanIOD::getPatientSpeciesDescription(OFString &value, const s } +OFCondition DRTIonPlanIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTIonPlanIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -1785,6 +2083,12 @@ OFCondition DRTIonPlanIOD::getPositionReferenceIndicator(OFString &value, const } +OFCondition DRTIonPlanIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTIonPlanIOD::getPrescriptionDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PrescriptionDescription, value, pos); @@ -1965,6 +2269,12 @@ OFCondition DRTIonPlanIOD::getServiceEpisodeID(OFString &value, const signed lon } +OFCondition DRTIonPlanIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTIonPlanIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -1995,6 +2305,24 @@ OFCondition DRTIonPlanIOD::getStationName(OFString &value, const signed long pos } +OFCondition DRTIonPlanIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTIonPlanIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTIonPlanIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTIonPlanIOD::getStudyDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StudyDate, value, pos); @@ -2085,6 +2413,15 @@ OFCondition DRTIonPlanIOD::setAdmittingDiagnosesDescription(const OFString &valu } +OFCondition DRTIonPlanIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setApprovalStatus(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2274,6 +2611,15 @@ OFCondition DRTIonPlanIOD::setDeidentificationMethod(const OFString &value, cons } +OFCondition DRTIonPlanIOD::setDerivationDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = DerivationDescription.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2292,6 +2638,12 @@ OFCondition DRTIonPlanIOD::setEthnicGroup(const OFString &value, const OFBool ch } +OFCondition DRTIonPlanIOD::setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos) +{ + return FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.putFloat64(value, pos); +} + + OFCondition DRTIonPlanIOD::setFrameOfReferenceUID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; @@ -2391,6 +2743,15 @@ OFCondition DRTIonPlanIOD::setIssuerOfPatientID(const OFString &value, const OFB } +OFCondition DRTIonPlanIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2418,6 +2779,33 @@ OFCondition DRTIonPlanIOD::setManufacturerModelName(const OFString &value, const } +OFCondition DRTIonPlanIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonPlanIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonPlanIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2490,6 +2878,15 @@ OFCondition DRTIonPlanIOD::setPatientAge(const OFString &value, const OFBool che } +OFCondition DRTIonPlanIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -2499,6 +2896,15 @@ OFCondition DRTIonPlanIOD::setPatientBirthDate(const OFString &value, const OFBo } +OFCondition DRTIonPlanIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -2508,6 +2914,15 @@ OFCondition DRTIonPlanIOD::setPatientBirthTime(const OFString &value, const OFBo } +OFCondition DRTIonPlanIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2526,6 +2941,15 @@ OFCondition DRTIonPlanIOD::setPatientComments(const OFString &value, const OFBoo } +OFCondition DRTIonPlanIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2589,6 +3013,15 @@ OFCondition DRTIonPlanIOD::setPatientSpeciesDescription(const OFString &value, c } +OFCondition DRTIonPlanIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -2685,6 +3118,12 @@ OFCondition DRTIonPlanIOD::setPositionReferenceIndicator(const OFString &value, } +OFCondition DRTIonPlanIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTIonPlanIOD::setPrescriptionDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; @@ -2946,6 +3385,15 @@ OFCondition DRTIonPlanIOD::setServiceEpisodeID(const OFString &value, const OFBo } +OFCondition DRTIonPlanIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -2982,6 +3430,33 @@ OFCondition DRTIonPlanIOD::setStationName(const OFString &value, const OFBool ch } +OFCondition DRTIonPlanIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonPlanIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonPlanIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTIonPlanIOD::setStudyDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drtiontr.cc b/dcmrt/libsrc/drtiontr.cc index ec5bf4d9..d7e794af 100644 --- a/dcmrt/libsrc/drtiontr.cc +++ b/dcmrt/libsrc/drtiontr.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonBeamsTreatmentRecordIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,6 +23,9 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -80,7 +90,16 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -119,6 +139,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -143,6 +164,12 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() FractionGroupSummarySequence(), TreatmentSummaryMeasuredDoseReferenceSequence(), TreatmentSummaryCalculatedDoseReferenceSequence(), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), SOPClassUID(DCM_SOPClassUID), SOPInstanceUID(DCM_SOPInstanceUID), SpecificCharacterSet(DCM_SpecificCharacterSet), @@ -153,6 +180,8 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -183,6 +212,9 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -198,12 +230,19 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -240,7 +279,16 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -257,6 +305,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -279,6 +328,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -303,6 +353,12 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr FractionGroupSummarySequence(copy.FractionGroupSummarySequence), TreatmentSummaryMeasuredDoseReferenceSequence(copy.TreatmentSummaryMeasuredDoseReferenceSequence), TreatmentSummaryCalculatedDoseReferenceSequence(copy.TreatmentSummaryCalculatedDoseReferenceSequence), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), SOPClassUID(copy.SOPClassUID), SOPInstanceUID(copy.SOPInstanceUID), SpecificCharacterSet(copy.SpecificCharacterSet), @@ -313,6 +369,8 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -349,6 +407,9 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -364,12 +425,19 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -406,7 +474,16 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -423,6 +500,7 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -445,6 +523,7 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -469,6 +548,12 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR FractionGroupSummarySequence = copy.FractionGroupSummarySequence; TreatmentSummaryMeasuredDoseReferenceSequence = copy.TreatmentSummaryMeasuredDoseReferenceSequence; TreatmentSummaryCalculatedDoseReferenceSequence = copy.TreatmentSummaryCalculatedDoseReferenceSequence; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; SOPClassUID = copy.SOPClassUID; SOPInstanceUID = copy.SOPInstanceUID; SpecificCharacterSet = copy.SpecificCharacterSet; @@ -479,6 +564,8 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -510,6 +597,9 @@ void DRTIonBeamsTreatmentRecordIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -525,12 +615,19 @@ void DRTIonBeamsTreatmentRecordIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -567,7 +664,16 @@ void DRTIonBeamsTreatmentRecordIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -584,6 +690,7 @@ void DRTIonBeamsTreatmentRecordIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -606,6 +713,7 @@ void DRTIonBeamsTreatmentRecordIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -630,6 +738,12 @@ void DRTIonBeamsTreatmentRecordIOD::clear() FractionGroupSummarySequence.clear(); TreatmentSummaryMeasuredDoseReferenceSequence.clear(); TreatmentSummaryCalculatedDoseReferenceSequence.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SOPClassUID.clear(); SOPInstanceUID.clear(); SpecificCharacterSet.clear(); @@ -640,6 +754,8 @@ void DRTIonBeamsTreatmentRecordIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -715,6 +831,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -768,6 +885,14 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset) TreatmentSummaryCalculatedDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule"); } + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- SOPCommonModule (M) --- getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule"); @@ -779,6 +904,8 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -815,6 +942,9 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -830,12 +960,19 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -899,7 +1036,16 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -928,6 +1074,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -966,6 +1113,9 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -981,12 +1131,19 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1039,7 +1196,16 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1059,6 +1225,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1088,6 +1255,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1139,6 +1307,17 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) if (result.good()) result = TreatmentSummaryCalculatedDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule"); } + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- SOPCommonModule (M) --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule"); @@ -1150,6 +1329,8 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1219,7 +1400,16 @@ OFBool DRTIonBeamsTreatmentRecordIOD::isPatientStudyModulePresent(const OFBool / !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1280,6 +1470,18 @@ OFBool DRTIonBeamsTreatmentRecordIOD::isRTTreatmentSummaryRecordModulePresent(co } +OFBool DRTIonBeamsTreatmentRecordIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTIonBeamsTreatmentRecordIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -1312,6 +1514,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getAdmittingDiagnosesDescription(OFSt } +OFCondition DRTIonBeamsTreatmentRecordIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos); @@ -1438,6 +1646,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getDeidentificationMethod(OFString &v } +OFCondition DRTIonBeamsTreatmentRecordIOD::getDerivationDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(DerivationDescription, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -1522,6 +1736,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getIssuerOfPatientID(OFString &value, } +OFCondition DRTIonBeamsTreatmentRecordIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -1540,6 +1760,36 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getManufacturerModelName(OFString &va } +OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -1606,18 +1856,42 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientAge(OFString &value, const } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -1630,6 +1904,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientComments(OFString &value, c } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -1678,6 +1958,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientSpeciesDescription(OFString } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -1738,6 +2024,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPixelPaddingValue(Uint16 &value, c } +OFCondition DRTIonBeamsTreatmentRecordIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getPrimaryDosimeterUnit(OFString &value, const signed long pos) const { return getStringValueFromElement(PrimaryDosimeterUnit, value, pos); @@ -1876,6 +2168,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getServiceEpisodeID(OFString &value, } +OFCondition DRTIonBeamsTreatmentRecordIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -1906,6 +2204,24 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getStationName(OFString &value, const } +OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::getStudyDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StudyDate, value, pos); @@ -2002,6 +2318,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setAdmittingDiagnosesDescription(cons } +OFCondition DRTIonBeamsTreatmentRecordIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2191,6 +2516,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setDeidentificationMethod(const OFStr } +OFCondition DRTIonBeamsTreatmentRecordIOD::setDerivationDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = DerivationDescription.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2308,6 +2642,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setIssuerOfPatientID(const OFString & } +OFCondition DRTIonBeamsTreatmentRecordIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2335,6 +2678,33 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setManufacturerModelName(const OFStri } +OFCondition DRTIonBeamsTreatmentRecordIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2425,6 +2795,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientAge(const OFString &value, } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -2434,6 +2813,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDate(const OFString &v } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -2443,6 +2831,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthTime(const OFString &v } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2461,6 +2858,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientComments(const OFString &va } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2524,6 +2930,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientSpeciesDescription(const OF } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -2602,6 +3017,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPixelPaddingValue(const Uint16 val } +OFCondition DRTIonBeamsTreatmentRecordIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setPrimaryDosimeterUnit(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2791,6 +3212,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setServiceEpisodeID(const OFString &v } +OFCondition DRTIonBeamsTreatmentRecordIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -2827,6 +3257,33 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setStationName(const OFString &value, } +OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTIonBeamsTreatmentRecordIOD::setStudyDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drtipiqs.cc b/dcmrt/libsrc/drtipiqs.cc index 25a3869d..23b7c28c 100644 --- a/dcmrt/libsrc/drtipiqs.cc +++ b/dcmrt/libsrc/drtipiqs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIssuerOfPatientIDQualifiersSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtircs.cc b/dcmrt/libsrc/drtircs.cc index e79d28cb..1f9714e4 100644 --- a/dcmrt/libsrc/drtircs.cc +++ b/dcmrt/libsrc/drtircs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonRangeCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtiseis.cc b/dcmrt/libsrc/drtiseis.cc index eb40d2e4..4a4c4676 100644 --- a/dcmrt/libsrc/drtiseis.cc +++ b/dcmrt/libsrc/drtiseis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIssuerOfServiceEpisodeIDSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtitts.cc b/dcmrt/libsrc/drtitts.cc index 32d02c1a..56773c08 100644 --- a/dcmrt/libsrc/drtitts.cc +++ b/dcmrt/libsrc/drtitts.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonToleranceTableSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,7 +23,11 @@ DRTIonToleranceTableSequence::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), BeamLimitingDeviceAngleTolerance(DCM_BeamLimitingDeviceAngleTolerance), BeamLimitingDeviceToleranceSequence(emptyDefaultItem /*emptyDefaultSequence*/), + ChairHeadFramePositionTolerance(DCM_ChairHeadFramePositionTolerance), + FixationLightAzimuthalAngleTolerance(DCM_FixationLightAzimuthalAngleTolerance), + FixationLightPolarAngleTolerance(DCM_FixationLightPolarAngleTolerance), GantryAngleTolerance(DCM_GantryAngleTolerance), + HeadFixationAngleTolerance(DCM_HeadFixationAngleTolerance), PatientSupportAngleTolerance(DCM_PatientSupportAngleTolerance), SnoutPositionTolerance(DCM_SnoutPositionTolerance), TableTopLateralPositionTolerance(DCM_TableTopLateralPositionTolerance), @@ -41,7 +45,11 @@ DRTIonToleranceTableSequence::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), BeamLimitingDeviceAngleTolerance(copy.BeamLimitingDeviceAngleTolerance), BeamLimitingDeviceToleranceSequence(copy.BeamLimitingDeviceToleranceSequence), + ChairHeadFramePositionTolerance(copy.ChairHeadFramePositionTolerance), + FixationLightAzimuthalAngleTolerance(copy.FixationLightAzimuthalAngleTolerance), + FixationLightPolarAngleTolerance(copy.FixationLightPolarAngleTolerance), GantryAngleTolerance(copy.GantryAngleTolerance), + HeadFixationAngleTolerance(copy.HeadFixationAngleTolerance), PatientSupportAngleTolerance(copy.PatientSupportAngleTolerance), SnoutPositionTolerance(copy.SnoutPositionTolerance), TableTopLateralPositionTolerance(copy.TableTopLateralPositionTolerance), @@ -67,7 +75,11 @@ DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::Item::operator EmptyDefaultItem = copy.EmptyDefaultItem; BeamLimitingDeviceAngleTolerance = copy.BeamLimitingDeviceAngleTolerance; BeamLimitingDeviceToleranceSequence = copy.BeamLimitingDeviceToleranceSequence; + ChairHeadFramePositionTolerance = copy.ChairHeadFramePositionTolerance; + FixationLightAzimuthalAngleTolerance = copy.FixationLightAzimuthalAngleTolerance; + FixationLightPolarAngleTolerance = copy.FixationLightPolarAngleTolerance; GantryAngleTolerance = copy.GantryAngleTolerance; + HeadFixationAngleTolerance = copy.HeadFixationAngleTolerance; PatientSupportAngleTolerance = copy.PatientSupportAngleTolerance; SnoutPositionTolerance = copy.SnoutPositionTolerance; TableTopLateralPositionTolerance = copy.TableTopLateralPositionTolerance; @@ -99,6 +111,10 @@ void DRTIonToleranceTableSequence::Item::clear() TableTopPitchAngleTolerance.clear(); TableTopRollAngleTolerance.clear(); SnoutPositionTolerance.clear(); + HeadFixationAngleTolerance.clear(); + ChairHeadFramePositionTolerance.clear(); + FixationLightAzimuthalAngleTolerance.clear(); + FixationLightPolarAngleTolerance.clear(); } } @@ -116,7 +132,11 @@ OFBool DRTIonToleranceTableSequence::Item::isEmpty() TableTopLateralPositionTolerance.isEmpty() && TableTopPitchAngleTolerance.isEmpty() && TableTopRollAngleTolerance.isEmpty() && - SnoutPositionTolerance.isEmpty(); + SnoutPositionTolerance.isEmpty() && + HeadFixationAngleTolerance.isEmpty() && + ChairHeadFramePositionTolerance.isEmpty() && + FixationLightAzimuthalAngleTolerance.isEmpty() && + FixationLightPolarAngleTolerance.isEmpty(); } @@ -145,6 +165,10 @@ OFCondition DRTIonToleranceTableSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, TableTopPitchAngleTolerance, "1", "3", "IonToleranceTableSequence"); getAndCheckElementFromDataset(item, TableTopRollAngleTolerance, "1", "3", "IonToleranceTableSequence"); getAndCheckElementFromDataset(item, SnoutPositionTolerance, "1", "3", "IonToleranceTableSequence"); + getAndCheckElementFromDataset(item, HeadFixationAngleTolerance, "1", "3", "IonToleranceTableSequence"); + getAndCheckElementFromDataset(item, ChairHeadFramePositionTolerance, "1", "3", "IonToleranceTableSequence"); + getAndCheckElementFromDataset(item, FixationLightAzimuthalAngleTolerance, "1", "3", "IonToleranceTableSequence"); + getAndCheckElementFromDataset(item, FixationLightPolarAngleTolerance, "1", "3", "IonToleranceTableSequence"); result = EC_Normal; } return result; @@ -169,6 +193,10 @@ OFCondition DRTIonToleranceTableSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopPitchAngleTolerance), "1", "3", "IonToleranceTableSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngleTolerance), "1", "3", "IonToleranceTableSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(SnoutPositionTolerance), "1", "3", "IonToleranceTableSequence"); + addElementToDataset(result, item, new DcmDecimalString(HeadFixationAngleTolerance), "1", "3", "IonToleranceTableSequence"); + addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePositionTolerance), "1", "3", "IonToleranceTableSequence"); + addElementToDataset(result, item, new DcmDecimalString(FixationLightAzimuthalAngleTolerance), "1", "3", "IonToleranceTableSequence"); + addElementToDataset(result, item, new DcmDecimalString(FixationLightPolarAngleTolerance), "1", "3", "IonToleranceTableSequence"); } return result; } @@ -192,6 +220,60 @@ OFCondition DRTIonToleranceTableSequence::Item::getBeamLimitingDeviceAngleTolera } +OFCondition DRTIonToleranceTableSequence::Item::getChairHeadFramePositionTolerance(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ChairHeadFramePositionTolerance, value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getChairHeadFramePositionTolerance(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, ChairHeadFramePositionTolerance).getFloat64(value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getFixationLightAzimuthalAngleTolerance(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(FixationLightAzimuthalAngleTolerance, value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getFixationLightAzimuthalAngleTolerance(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, FixationLightAzimuthalAngleTolerance).getFloat64(value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getFixationLightPolarAngleTolerance(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(FixationLightPolarAngleTolerance, value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getFixationLightPolarAngleTolerance(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, FixationLightPolarAngleTolerance).getFloat64(value, pos); +} + + OFCondition DRTIonToleranceTableSequence::Item::getGantryAngleTolerance(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -210,6 +292,24 @@ OFCondition DRTIonToleranceTableSequence::Item::getGantryAngleTolerance(Float64 } +OFCondition DRTIonToleranceTableSequence::Item::getHeadFixationAngleTolerance(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(HeadFixationAngleTolerance, value, pos); +} + + +OFCondition DRTIonToleranceTableSequence::Item::getHeadFixationAngleTolerance(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, HeadFixationAngleTolerance).getFloat64(value, pos); +} + + OFCondition DRTIonToleranceTableSequence::Item::getPatientSupportAngleTolerance(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -349,6 +449,45 @@ OFCondition DRTIonToleranceTableSequence::Item::setBeamLimitingDeviceAngleTolera } +OFCondition DRTIonToleranceTableSequence::Item::setChairHeadFramePositionTolerance(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ChairHeadFramePositionTolerance.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTIonToleranceTableSequence::Item::setFixationLightAzimuthalAngleTolerance(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = FixationLightAzimuthalAngleTolerance.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTIonToleranceTableSequence::Item::setFixationLightPolarAngleTolerance(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = FixationLightPolarAngleTolerance.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonToleranceTableSequence::Item::setGantryAngleTolerance(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; @@ -362,6 +501,19 @@ OFCondition DRTIonToleranceTableSequence::Item::setGantryAngleTolerance(const OF } +OFCondition DRTIonToleranceTableSequence::Item::setHeadFixationAngleTolerance(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = HeadFixationAngleTolerance.putOFStringArray(value); + } + return result; +} + + OFCondition DRTIonToleranceTableSequence::Item::setPatientSupportAngleTolerance(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtiwps.cc b/dcmrt/libsrc/drtiwps.cc index 0501b4b9..f487b517 100644 --- a/dcmrt/libsrc/drtiwps.cc +++ b/dcmrt/libsrc/drtiwps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonWedgePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtiws.cc b/dcmrt/libsrc/drtiws.cc index 66ec2a87..7ce23d48 100644 --- a/dcmrt/libsrc/drtiws.cc +++ b/dcmrt/libsrc/drtiws.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTIonWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtlsds.cc b/dcmrt/libsrc/drtlsds.cc index c6ee742f..887c5840 100644 --- a/dcmrt/libsrc/drtlsds.cc +++ b/dcmrt/libsrc/drtlsds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTLateralSpreadingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtlsds6.cc b/dcmrt/libsrc/drtlsds6.cc index 77f8ba1e..d9d8606f 100644 --- a/dcmrt/libsrc/drtlsds6.cc +++ b/dcmrt/libsrc/drtlsds6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtlsds7.cc b/dcmrt/libsrc/drtlsds7.cc index 6d236c56..e7622018 100644 --- a/dcmrt/libsrc/drtlsds7.cc +++ b/dcmrt/libsrc/drtlsds7.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtmacds.cc b/dcmrt/libsrc/drtmacds.cc index ddbda955..8ede6d46 100644 --- a/dcmrt/libsrc/drtmacds.cc +++ b/dcmrt/libsrc/drtmacds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTMultiplexedAudioChannelsDescriptionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtmas.cc b/dcmrt/libsrc/drtmas.cc index 369b0c6e..50097b6e 100644 --- a/dcmrt/libsrc/drtmas.cc +++ b/dcmrt/libsrc/drtmas.cc @@ -6,9 +6,8 @@ * * Source file for class DRTModifiedAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 - * Last modified on 2016-02-05 by Riesmeier + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -68,26 +67,24 @@ OFBool DRTModifiedAttributesSequence::Item::isValid() const } -OFCondition DRTModifiedAttributesSequence::Item::read(DcmItem & /*item*/) +OFCondition DRTModifiedAttributesSequence::Item::read(DcmItem &item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) { /* re-initialize object */ clear(); - /* manual comment: nothing to do */ result = EC_Normal; } return result; } -OFCondition DRTModifiedAttributesSequence::Item::write(DcmItem & /*item*/) +OFCondition DRTModifiedAttributesSequence::Item::write(DcmItem &item) { OFCondition result = EC_IllegalCall; if (!EmptyDefaultItem) { - /* manual comment: nothing to do */ result = EC_Normal; } return result; diff --git a/dcmrt/libsrc/drtmdrs.cc b/dcmrt/libsrc/drtmdrs.cc index bac8e3d6..31209c58 100644 --- a/dcmrt/libsrc/drtmdrs.cc +++ b/dcmrt/libsrc/drtmdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtmls.cc b/dcmrt/libsrc/drtmls.cc index af627b04..5484cea6 100644 --- a/dcmrt/libsrc/drtmls.cc +++ b/dcmrt/libsrc/drtmls.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTModalityLUTSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -93,10 +93,10 @@ OFCondition DRTModalityLUTSequence::Item::read(DcmItem &item) { /* re-initialize object */ clear(); - getAndCheckElementFromDataset(item, LUTDescriptor, "3", "1C", "ModalityLUTSequence"); + getAndCheckElementFromDataset(item, LUTDescriptor, "3", "1", "ModalityLUTSequence"); getAndCheckElementFromDataset(item, LUTExplanation, "1", "3", "ModalityLUTSequence"); - getAndCheckElementFromDataset(item, ModalityLUTType, "1", "1C", "ModalityLUTSequence"); - getAndCheckElementFromDataset(item, LUTData, "1-n", "1C", "ModalityLUTSequence"); + getAndCheckElementFromDataset(item, ModalityLUTType, "1", "1", "ModalityLUTSequence"); + getAndCheckElementFromDataset(item, LUTData, "1-n", "1", "ModalityLUTSequence"); result = EC_Normal; } return result; @@ -109,10 +109,10 @@ OFCondition DRTModalityLUTSequence::Item::write(DcmItem &item) if (!EmptyDefaultItem) { result = EC_Normal; - addElementToDataset(result, item, new DcmUnsignedShort(LUTDescriptor), "3", "1C", "ModalityLUTSequence"); + addElementToDataset(result, item, new DcmUnsignedShort(LUTDescriptor), "3", "1", "ModalityLUTSequence"); addElementToDataset(result, item, new DcmLongString(LUTExplanation), "1", "3", "ModalityLUTSequence"); - addElementToDataset(result, item, new DcmLongString(ModalityLUTType), "1", "1C", "ModalityLUTSequence"); - addElementToDataset(result, item, new DcmOtherByteOtherWord(LUTData), "1-n", "1C", "ModalityLUTSequence"); + addElementToDataset(result, item, new DcmLongString(ModalityLUTType), "1", "1", "ModalityLUTSequence"); + addElementToDataset(result, item, new DcmOtherByteOtherWord(LUTData), "1-n", "1", "ModalityLUTSequence"); } return result; } diff --git a/dcmrt/libsrc/drtmps.cc b/dcmrt/libsrc/drtmps.cc index b48bfaa7..7f94570a 100644 --- a/dcmrt/libsrc/drtmps.cc +++ b/dcmrt/libsrc/drtmps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTMACParametersSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtmris.cc b/dcmrt/libsrc/drtmris.cc new file mode 100644 index 00000000..8a827782 --- /dev/null +++ b/dcmrt/libsrc/drtmris.cc @@ -0,0 +1,602 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTMappingResourceIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtmris.h" + + +// --- item class --- + +DRTMappingResourceIdentificationSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), + MappingResourceUID(DCM_MappingResourceUID) +{ +} + + +DRTMappingResourceIdentificationSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), + MappingResourceUID(copy.MappingResourceUID) +{ +} + + +DRTMappingResourceIdentificationSequence::Item::~Item() +{ +} + + +DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; + MappingResourceUID = copy.MappingResourceUID; + } + return *this; +} + + +void DRTMappingResourceIdentificationSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + MappingResource.clear(); + MappingResourceUID.clear(); + MappingResourceName.clear(); + } +} + + +OFBool DRTMappingResourceIdentificationSequence::Item::isEmpty() +{ + return MappingResource.isEmpty() && + MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty(); +} + + +OFBool DRTMappingResourceIdentificationSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, MappingResource, "1", "1", "MappingResourceIdentificationSequence"); + getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "MappingResourceIdentificationSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "MappingResourceIdentificationSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1", "MappingResourceIdentificationSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "MappingResourceIdentificationSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "MappingResourceIdentificationSequence"); + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceUID, value, pos); +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceUID.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTMappingResourceIdentificationSequence::DRTMappingResourceIdentificationSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTMappingResourceIdentificationSequence::DRTMappingResourceIdentificationSequence(const DRTMappingResourceIdentificationSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTMappingResourceIdentificationSequence &DRTMappingResourceIdentificationSequence::operator=(const DRTMappingResourceIdentificationSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTMappingResourceIdentificationSequence::~DRTMappingResourceIdentificationSequence() +{ + clear(); +} + + +void DRTMappingResourceIdentificationSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTMappingResourceIdentificationSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTMappingResourceIdentificationSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTMappingResourceIdentificationSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTMappingResourceIdentificationSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTMappingResourceIdentificationSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTMappingResourceIdentificationSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTMappingResourceIdentificationSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_MappingResourceIdentificationSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_MappingResourceIdentificationSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTMappingResourceIdentificationSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_MappingResourceIdentificationSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtmss.cc b/dcmrt/libsrc/drtmss.cc index 8879fa6d..37b1a177 100644 --- a/dcmrt/libsrc/drtmss.cc +++ b/dcmrt/libsrc/drtmss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTMotionSynchronizationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtmucs.cc b/dcmrt/libsrc/drtmucs.cc index b995faa8..bab34211 100644 --- a/dcmrt/libsrc/drtmucs.cc +++ b/dcmrt/libsrc/drtmucs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTMeasurementUnitsCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTMeasurementUnitsCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTMeasurementUnitsCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::Item::op EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTMeasurementUnitsCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTMeasurementUnitsCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "MeasurementUnitsCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "MeasurementUnitsCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "MeasurementUnitsCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "MeasurementUnitsCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "MeasurementUnitsCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "MeasurementUnitsCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "MeasurementUnitsCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "MeasurementUnitsCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "MeasurementUnitsCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "MeasurementUnitsCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "MeasurementUnitsCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "MeasurementUnitsCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "MeasurementUnitsCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "MeasurementUnitsCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResource(OFString & } +OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResource(const OFSt } +OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtoas.cc b/dcmrt/libsrc/drtoas.cc index 0685b2ff..53c30a93 100644 --- a/dcmrt/libsrc/drtoas.cc +++ b/dcmrt/libsrc/drtoas.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTOriginalAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtois.cc b/dcmrt/libsrc/drtois.cc index 43e4ce2f..661c183a 100644 --- a/dcmrt/libsrc/drtois.cc +++ b/dcmrt/libsrc/drtois.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTOperatorIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtopis.cc b/dcmrt/libsrc/drtopis.cc index a47bd1ec..bd2126d0 100644 --- a/dcmrt/libsrc/drtopis.cc +++ b/dcmrt/libsrc/drtopis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTOtherPatientIDsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtos.cc b/dcmrt/libsrc/drtos.cc index 81ccc2e0..72ef9d76 100644 --- a/dcmrt/libsrc/drtos.cc +++ b/dcmrt/libsrc/drtos.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTOverrideSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -21,6 +21,7 @@ DRTOverrideSequence::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), + OperatorIdentificationSequence(emptyDefaultItem /*emptyDefaultSequence*/), OperatorsName(DCM_OperatorsName), OverrideParameterPointer(DCM_OverrideParameterPointer), OverrideReason(DCM_OverrideReason), @@ -32,6 +33,7 @@ DRTOverrideSequence::Item::Item(const OFBool emptyDefaultItem) DRTOverrideSequence::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), OperatorsName(copy.OperatorsName), OverrideParameterPointer(copy.OverrideParameterPointer), OverrideReason(copy.OverrideReason), @@ -51,6 +53,7 @@ DRTOverrideSequence::Item &DRTOverrideSequence::Item::operator=(const Item © if (this != ©) { EmptyDefaultItem = copy.EmptyDefaultItem; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; OperatorsName = copy.OperatorsName; OverrideParameterPointer = copy.OverrideParameterPointer; OverrideReason = copy.OverrideReason; @@ -70,6 +73,7 @@ void DRTOverrideSequence::Item::clear() OverrideParameterPointer.clear(); ParameterItemIndex.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); OverrideReason.clear(); } } @@ -81,6 +85,7 @@ OFBool DRTOverrideSequence::Item::isEmpty() OverrideParameterPointer.isEmpty() && ParameterItemIndex.isEmpty() && OperatorsName.isEmpty() && + OperatorIdentificationSequence.isEmpty() && OverrideReason.isEmpty(); } @@ -102,6 +107,7 @@ OFCondition DRTOverrideSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, OverrideParameterPointer, "1", "1", "OverrideSequence"); getAndCheckElementFromDataset(item, ParameterItemIndex, "1", "1", "OverrideSequence"); getAndCheckElementFromDataset(item, OperatorsName, "1-n", "2", "OverrideSequence"); + OperatorIdentificationSequence.read(item, "1-n", "3", "OverrideSequence"); getAndCheckElementFromDataset(item, OverrideReason, "1", "3", "OverrideSequence"); result = EC_Normal; } @@ -119,6 +125,7 @@ OFCondition DRTOverrideSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmAttributeTag(OverrideParameterPointer), "1", "1", "OverrideSequence"); addElementToDataset(result, item, new DcmIntegerString(ParameterItemIndex), "1", "1", "OverrideSequence"); addElementToDataset(result, item, new DcmPersonName(OperatorsName), "1-n", "2", "OverrideSequence"); + if (result.good()) result = OperatorIdentificationSequence.write(item, "1-n", "3", "OverrideSequence"); addElementToDataset(result, item, new DcmShortText(OverrideReason), "1", "3", "OverrideSequence"); } return result; diff --git a/dcmrt/libsrc/drtpbcs.cc b/dcmrt/libsrc/drtpbcs.cc index 2f410328..0f23ab31 100644 --- a/dcmrt/libsrc/drtpbcs.cc +++ b/dcmrt/libsrc/drtpbcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPatientBreedCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTPatientBreedCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTPatientBreedCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::Item::operator=( EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTPatientBreedCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTPatientBreedCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTPatientBreedCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientBreedCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientBreedCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientBreedCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientBreedCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientBreedCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientBreedCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientBreedCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTPatientBreedCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientBreedCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientBreedCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientBreedCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientBreedCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientBreedCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientBreedCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientBreedCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTPatientBreedCodeSequence::Item::getMappingResource(OFString &valu } +OFCondition DRTPatientBreedCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPatientBreedCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTPatientBreedCodeSequence::Item::setMappingResource(const OFString } +OFCondition DRTPatientBreedCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPatientBreedCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtpcs.cc b/dcmrt/libsrc/drtpcs.cc index d2105448..1ee16ccc 100644 --- a/dcmrt/libsrc/drtpcs.cc +++ b/dcmrt/libsrc/drtpcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTProcedureCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTProcedureCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::Item::operator=(const EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTProcedureCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTProcedureCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTProcedureCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ProcedureCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ProcedureCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTProcedureCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ProcedureCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ProcedureCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ProcedureCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTProcedureCodeSequence::Item::getMappingResource(OFString &value, } +OFCondition DRTProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTProcedureCodeSequence::Item::setMappingResource(const OFString &v } +OFCondition DRTProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtpcxs.cc b/dcmrt/libsrc/drtpcxs.cc index b95cebda..f7fac928 100644 --- a/dcmrt/libsrc/drtpcxs.cc +++ b/dcmrt/libsrc/drtpcxs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTProtocolContextSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtpdecs.cc b/dcmrt/libsrc/drtpdecs.cc index 0238804b..576b97f6 100644 --- a/dcmrt/libsrc/drtpdecs.cc +++ b/dcmrt/libsrc/drtpdecs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPrivateDataElementCharacteristicsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -25,6 +25,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item::Item(const OFBool emptyDefau DeidentificationActionSequence(emptyDefaultItem /*emptyDefaultSequence*/), NonidentifyingPrivateElements(DCM_NonidentifyingPrivateElements), PrivateCreatorReference(DCM_PrivateCreatorReference), + PrivateDataElementDefinitionSequence(emptyDefaultItem /*emptyDefaultSequence*/), PrivateGroupReference(DCM_PrivateGroupReference) { } @@ -36,6 +37,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item::Item(const Item ©) DeidentificationActionSequence(copy.DeidentificationActionSequence), NonidentifyingPrivateElements(copy.NonidentifyingPrivateElements), PrivateCreatorReference(copy.PrivateCreatorReference), + PrivateDataElementDefinitionSequence(copy.PrivateDataElementDefinitionSequence), PrivateGroupReference(copy.PrivateGroupReference) { } @@ -55,6 +57,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharact DeidentificationActionSequence = copy.DeidentificationActionSequence; NonidentifyingPrivateElements = copy.NonidentifyingPrivateElements; PrivateCreatorReference = copy.PrivateCreatorReference; + PrivateDataElementDefinitionSequence = copy.PrivateDataElementDefinitionSequence; PrivateGroupReference = copy.PrivateGroupReference; } return *this; @@ -68,6 +71,7 @@ void DRTPrivateDataElementCharacteristicsSequence::Item::clear() /* clear all DICOM attributes */ PrivateGroupReference.clear(); PrivateCreatorReference.clear(); + PrivateDataElementDefinitionSequence.clear(); BlockIdentifyingInformationStatus.clear(); NonidentifyingPrivateElements.clear(); DeidentificationActionSequence.clear(); @@ -79,6 +83,7 @@ OFBool DRTPrivateDataElementCharacteristicsSequence::Item::isEmpty() { return PrivateGroupReference.isEmpty() && PrivateCreatorReference.isEmpty() && + PrivateDataElementDefinitionSequence.isEmpty() && BlockIdentifyingInformationStatus.isEmpty() && NonidentifyingPrivateElements.isEmpty() && DeidentificationActionSequence.isEmpty(); @@ -100,6 +105,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::Item::read(DcmItem &it clear(); getAndCheckElementFromDataset(item, PrivateGroupReference, "1", "1", "PrivateDataElementCharacteristicsSequence"); getAndCheckElementFromDataset(item, PrivateCreatorReference, "1", "1", "PrivateDataElementCharacteristicsSequence"); + PrivateDataElementDefinitionSequence.read(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence"); getAndCheckElementFromDataset(item, BlockIdentifyingInformationStatus, "1", "1", "PrivateDataElementCharacteristicsSequence"); getAndCheckElementFromDataset(item, NonidentifyingPrivateElements, "1-n", "1C", "PrivateDataElementCharacteristicsSequence"); DeidentificationActionSequence.read(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence"); @@ -117,6 +123,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::Item::write(DcmItem &i result = EC_Normal; addElementToDataset(result, item, new DcmUnsignedShort(PrivateGroupReference), "1", "1", "PrivateDataElementCharacteristicsSequence"); addElementToDataset(result, item, new DcmLongString(PrivateCreatorReference), "1", "1", "PrivateDataElementCharacteristicsSequence"); + if (result.good()) result = PrivateDataElementDefinitionSequence.write(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence"); addElementToDataset(result, item, new DcmCodeString(BlockIdentifyingInformationStatus), "1", "1", "PrivateDataElementCharacteristicsSequence"); addElementToDataset(result, item, new DcmUnsignedShort(NonidentifyingPrivateElements), "1-n", "1C", "PrivateDataElementCharacteristicsSequence"); if (result.good()) result = DeidentificationActionSequence.write(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence"); diff --git a/dcmrt/libsrc/drtpdeds.cc b/dcmrt/libsrc/drtpdeds.cc new file mode 100644 index 00000000..927ab5fc --- /dev/null +++ b/dcmrt/libsrc/drtpdeds.cc @@ -0,0 +1,764 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTPrivateDataElementDefinitionSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtpdeds.h" + + +// --- item class --- + +DRTPrivateDataElementDefinitionSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + PrivateDataElement(DCM_PrivateDataElement), + PrivateDataElementDescription(DCM_PrivateDataElementDescription), + PrivateDataElementEncoding(DCM_PrivateDataElementEncoding), + PrivateDataElementKeyword(DCM_PrivateDataElementKeyword), + PrivateDataElementName(DCM_PrivateDataElementName), + PrivateDataElementNumberOfItems(DCM_PrivateDataElementNumberOfItems), + PrivateDataElementValueMultiplicity(DCM_PrivateDataElementValueMultiplicity), + PrivateDataElementValueRepresentation(DCM_PrivateDataElementValueRepresentation), + RetrieveURI(DCM_RetrieveURI) +{ +} + + +DRTPrivateDataElementDefinitionSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + PrivateDataElement(copy.PrivateDataElement), + PrivateDataElementDescription(copy.PrivateDataElementDescription), + PrivateDataElementEncoding(copy.PrivateDataElementEncoding), + PrivateDataElementKeyword(copy.PrivateDataElementKeyword), + PrivateDataElementName(copy.PrivateDataElementName), + PrivateDataElementNumberOfItems(copy.PrivateDataElementNumberOfItems), + PrivateDataElementValueMultiplicity(copy.PrivateDataElementValueMultiplicity), + PrivateDataElementValueRepresentation(copy.PrivateDataElementValueRepresentation), + RetrieveURI(copy.RetrieveURI) +{ +} + + +DRTPrivateDataElementDefinitionSequence::Item::~Item() +{ +} + + +DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + PrivateDataElement = copy.PrivateDataElement; + PrivateDataElementDescription = copy.PrivateDataElementDescription; + PrivateDataElementEncoding = copy.PrivateDataElementEncoding; + PrivateDataElementKeyword = copy.PrivateDataElementKeyword; + PrivateDataElementName = copy.PrivateDataElementName; + PrivateDataElementNumberOfItems = copy.PrivateDataElementNumberOfItems; + PrivateDataElementValueMultiplicity = copy.PrivateDataElementValueMultiplicity; + PrivateDataElementValueRepresentation = copy.PrivateDataElementValueRepresentation; + RetrieveURI = copy.RetrieveURI; + } + return *this; +} + + +void DRTPrivateDataElementDefinitionSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + PrivateDataElement.clear(); + PrivateDataElementValueMultiplicity.clear(); + PrivateDataElementValueRepresentation.clear(); + PrivateDataElementNumberOfItems.clear(); + PrivateDataElementKeyword.clear(); + PrivateDataElementName.clear(); + PrivateDataElementDescription.clear(); + PrivateDataElementEncoding.clear(); + RetrieveURI.clear(); + } +} + + +OFBool DRTPrivateDataElementDefinitionSequence::Item::isEmpty() +{ + return PrivateDataElement.isEmpty() && + PrivateDataElementValueMultiplicity.isEmpty() && + PrivateDataElementValueRepresentation.isEmpty() && + PrivateDataElementNumberOfItems.isEmpty() && + PrivateDataElementKeyword.isEmpty() && + PrivateDataElementName.isEmpty() && + PrivateDataElementDescription.isEmpty() && + PrivateDataElementEncoding.isEmpty() && + RetrieveURI.isEmpty(); +} + + +OFBool DRTPrivateDataElementDefinitionSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, PrivateDataElement, "1", "1", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementValueMultiplicity, "1-3", "1", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementValueRepresentation, "1", "1", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementNumberOfItems, "1-2", "1C", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementKeyword, "1", "1", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementName, "1", "1", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementDescription, "1", "3", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, PrivateDataElementEncoding, "1", "3", "PrivateDataElementDefinitionSequence"); + getAndCheckElementFromDataset(item, RetrieveURI, "1", "3", "PrivateDataElementDefinitionSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmUnsignedShort(PrivateDataElement), "1", "1", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnsignedLong(PrivateDataElementValueMultiplicity), "1-3", "1", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmCodeString(PrivateDataElementValueRepresentation), "1", "1", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnsignedLong(PrivateDataElementNumberOfItems), "1-2", "1C", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnlimitedCharacters(PrivateDataElementKeyword), "1", "1", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnlimitedCharacters(PrivateDataElementName), "1", "1", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnlimitedText(PrivateDataElementDescription), "1", "3", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUnlimitedText(PrivateDataElementEncoding), "1", "3", "PrivateDataElementDefinitionSequence"); + addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(RetrieveURI), "1", "3", "PrivateDataElementDefinitionSequence"); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElement(Uint16 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmUnsignedShort &, PrivateDataElement).getUint16(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementDescription(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PrivateDataElementDescription, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementEncoding(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PrivateDataElementEncoding, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementKeyword(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PrivateDataElementKeyword, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PrivateDataElementName, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementNumberOfItems(Uint32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmUnsignedLong &, PrivateDataElementNumberOfItems).getUint32(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementValueMultiplicity(Uint32 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmUnsignedLong &, PrivateDataElementValueMultiplicity).getUint32(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementValueRepresentation(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PrivateDataElementValueRepresentation, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::getRetrieveURI(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(RetrieveURI, value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElement(const Uint16 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return PrivateDataElement.putUint16(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementDescription(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = PrivateDataElementDescription.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementEncoding(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = PrivateDataElementEncoding.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementKeyword(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PrivateDataElementKeyword.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PrivateDataElementName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementNumberOfItems(const Uint32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return PrivateDataElementNumberOfItems.putUint32(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementValueMultiplicity(const Uint32 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return PrivateDataElementValueMultiplicity.putUint32(value, pos); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementValueRepresentation(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PrivateDataElementValueRepresentation.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::Item::setRetrieveURI(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal; + if (result.good()) + result = RetrieveURI.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTPrivateDataElementDefinitionSequence::DRTPrivateDataElementDefinitionSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTPrivateDataElementDefinitionSequence::DRTPrivateDataElementDefinitionSequence(const DRTPrivateDataElementDefinitionSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTPrivateDataElementDefinitionSequence &DRTPrivateDataElementDefinitionSequence::operator=(const DRTPrivateDataElementDefinitionSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTPrivateDataElementDefinitionSequence::~DRTPrivateDataElementDefinitionSequence() +{ + clear(); +} + + +void DRTPrivateDataElementDefinitionSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTPrivateDataElementDefinitionSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTPrivateDataElementDefinitionSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTPrivateDataElementDefinitionSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_PrivateDataElementDefinitionSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_PrivateDataElementDefinitionSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTPrivateDataElementDefinitionSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_PrivateDataElementDefinitionSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtpfms.cc b/dcmrt/libsrc/drtpfms.cc index 0db5bd3d..4c3a6c41 100644 --- a/dcmrt/libsrc/drtpfms.cc +++ b/dcmrt/libsrc/drtpfms.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPrimaryFluenceModeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtpics.cc b/dcmrt/libsrc/drtpics.cc index 77b1ad8a..fbb7efe5 100644 --- a/dcmrt/libsrc/drtpics.cc +++ b/dcmrt/libsrc/drtpics.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPersonIdentificationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTPersonIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTPersonIdentificationCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence:: EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTPersonIdentificationCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTPersonIdentificationCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PersonIdentificationCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PersonIdentificationCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PersonIdentificationCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PersonIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PersonIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PersonIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PersonIdentificationCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PersonIdentificationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PersonIdentificationCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PersonIdentificationCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PersonIdentificationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PersonIdentificationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PersonIdentificationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PersonIdentificationCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResource(OFStri } +OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResource(const } +OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtplan.cc b/dcmrt/libsrc/drtplan.cc index 63968f1d..0f05bf88 100644 --- a/dcmrt/libsrc/drtplan.cc +++ b/dcmrt/libsrc/drtplan.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPlanIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,6 +23,9 @@ DRTPlanIOD::DRTPlanIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTPlanIOD::DRTPlanIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTPlanIOD::DRTPlanIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTPlanIOD::DRTPlanIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -121,6 +141,7 @@ DRTPlanIOD::DRTPlanIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -138,6 +159,7 @@ DRTPlanIOD::DRTPlanIOD() ReferencedStructureSetSequence(), ReferencedDoseSequence(), ReferencedRTPlanSequence(), + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(DCM_FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), PrescriptionDescription(DCM_PrescriptionDescription), DoseReferenceSequence(), ToleranceTableSequence(), @@ -153,6 +175,12 @@ DRTPlanIOD::DRTPlanIOD() ReviewDate(DCM_ReviewDate), ReviewTime(DCM_ReviewTime), ReviewerName(DCM_ReviewerName), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), SOPClassUID(DCM_SOPClassUID), SOPInstanceUID(DCM_SOPInstanceUID), SpecificCharacterSet(DCM_SpecificCharacterSet), @@ -163,6 +191,8 @@ DRTPlanIOD::DRTPlanIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -193,6 +223,9 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -208,12 +241,19 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -247,7 +287,16 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -267,6 +316,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -291,6 +341,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -308,6 +359,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) ReferencedStructureSetSequence(copy.ReferencedStructureSetSequence), ReferencedDoseSequence(copy.ReferencedDoseSequence), ReferencedRTPlanSequence(copy.ReferencedRTPlanSequence), + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), PrescriptionDescription(copy.PrescriptionDescription), DoseReferenceSequence(copy.DoseReferenceSequence), ToleranceTableSequence(copy.ToleranceTableSequence), @@ -323,6 +375,12 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) ReviewDate(copy.ReviewDate), ReviewTime(copy.ReviewTime), ReviewerName(copy.ReviewerName), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), SOPClassUID(copy.SOPClassUID), SOPInstanceUID(copy.SOPInstanceUID), SpecificCharacterSet(copy.SpecificCharacterSet), @@ -333,6 +391,8 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD ©) RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -369,6 +429,9 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -384,12 +447,19 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -423,7 +493,16 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -443,6 +522,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -467,6 +547,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -484,6 +565,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) ReferencedStructureSetSequence = copy.ReferencedStructureSetSequence; ReferencedDoseSequence = copy.ReferencedDoseSequence; ReferencedRTPlanSequence = copy.ReferencedRTPlanSequence; + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix = copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix; PrescriptionDescription = copy.PrescriptionDescription; DoseReferenceSequence = copy.DoseReferenceSequence; ToleranceTableSequence = copy.ToleranceTableSequence; @@ -499,6 +581,12 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) ReviewDate = copy.ReviewDate; ReviewTime = copy.ReviewTime; ReviewerName = copy.ReviewerName; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; SOPClassUID = copy.SOPClassUID; SOPInstanceUID = copy.SOPInstanceUID; SpecificCharacterSet = copy.SpecificCharacterSet; @@ -509,6 +597,8 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD ©) RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -540,6 +630,9 @@ void DRTPlanIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -555,12 +648,19 @@ void DRTPlanIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -594,7 +694,16 @@ void DRTPlanIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -614,6 +723,7 @@ void DRTPlanIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -638,6 +748,7 @@ void DRTPlanIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -655,6 +766,7 @@ void DRTPlanIOD::clear() ReferencedStructureSetSequence.clear(); ReferencedDoseSequence.clear(); ReferencedRTPlanSequence.clear(); + FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.clear(); PrescriptionDescription.clear(); DoseReferenceSequence.clear(); ToleranceTableSequence.clear(); @@ -670,6 +782,12 @@ void DRTPlanIOD::clear() ReviewDate.clear(); ReviewTime.clear(); ReviewerName.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SOPClassUID.clear(); SOPInstanceUID.clear(); SpecificCharacterSet.clear(); @@ -680,6 +798,8 @@ void DRTPlanIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -763,6 +883,7 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -782,6 +903,7 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset) ReferencedStructureSetSequence.read(dataset, "1-n", "1C", "RTGeneralPlanModule"); ReferencedDoseSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule"); ReferencedRTPlanSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule"); + getAndCheckElementFromDataset(dataset, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix, "16", "3", "RTGeneralPlanModule"); // --- RTPrescriptionModule (U) --- getAndCheckElementFromDataset(dataset, PrescriptionDescription, "1", "3", "RTPrescriptionModule"); @@ -831,6 +953,14 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- SOPCommonModule (M) --- getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule"); @@ -842,6 +972,8 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -878,6 +1010,9 @@ OFCondition DRTPlanIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -893,12 +1028,19 @@ OFCondition DRTPlanIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -954,7 +1096,16 @@ OFCondition DRTPlanIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -991,6 +1142,7 @@ OFCondition DRTPlanIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -1029,6 +1181,9 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -1044,12 +1199,19 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1094,7 +1256,16 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1122,6 +1293,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1158,6 +1330,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1177,6 +1350,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) if (result.good()) result = ReferencedStructureSetSequence.write(dataset, "1-n" ,"1C", "RTGeneralPlanModule"); if (result.good()) result = ReferencedDoseSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule"); if (result.good()) result = ReferencedRTPlanSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule"); + addElementToDataset(result, dataset, new DcmFloatingPointDouble(FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), "16", "3", "RTGeneralPlanModule"); // --- RTPrescriptionModule (U) --- if (isRTPrescriptionModulePresent(OFFalse /*complete*/)) @@ -1228,6 +1402,17 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- SOPCommonModule (M) --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule"); @@ -1239,6 +1424,8 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1299,7 +1486,16 @@ OFBool DRTPlanIOD::isPatientStudyModulePresent(const OFBool /*complete*/) !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1416,6 +1612,18 @@ OFBool DRTPlanIOD::isApprovalModulePresent(const OFBool complete) } +OFBool DRTPlanIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTPlanIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -1448,6 +1656,12 @@ OFCondition DRTPlanIOD::getAdmittingDiagnosesDescription(OFString &value, const } +OFCondition DRTPlanIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTPlanIOD::getApprovalStatus(OFString &value, const signed long pos) const { return getStringValueFromElement(ApprovalStatus, value, pos); @@ -1586,6 +1800,12 @@ OFCondition DRTPlanIOD::getDeidentificationMethod(OFString &value, const signed } +OFCondition DRTPlanIOD::getDerivationDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(DerivationDescription, value, pos); +} + + OFCondition DRTPlanIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -1598,6 +1818,12 @@ OFCondition DRTPlanIOD::getEthnicGroup(OFString &value, const signed long pos) c } +OFCondition DRTPlanIOD::getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmFloatingPointDouble &, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix).getFloat64(value, pos); +} + + OFCondition DRTPlanIOD::getFrameOfReferenceUID(OFString &value, const signed long pos) const { return getStringValueFromElement(FrameOfReferenceUID, value, pos); @@ -1670,6 +1896,12 @@ OFCondition DRTPlanIOD::getIssuerOfPatientID(OFString &value, const signed long } +OFCondition DRTPlanIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTPlanIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -1688,6 +1920,36 @@ OFCondition DRTPlanIOD::getManufacturerModelName(OFString &value, const signed l } +OFCondition DRTPlanIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTPlanIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTPlanIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTPlanIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTPlanIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTPlanIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -1736,18 +1998,42 @@ OFCondition DRTPlanIOD::getPatientAge(OFString &value, const signed long pos) co } +OFCondition DRTPlanIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTPlanIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTPlanIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTPlanIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTPlanIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTPlanIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTPlanIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -1760,6 +2046,12 @@ OFCondition DRTPlanIOD::getPatientComments(OFString &value, const signed long po } +OFCondition DRTPlanIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTPlanIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -1808,6 +2100,12 @@ OFCondition DRTPlanIOD::getPatientSpeciesDescription(OFString &value, const sign } +OFCondition DRTPlanIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTPlanIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -1880,6 +2178,12 @@ OFCondition DRTPlanIOD::getPositionReferenceIndicator(OFString &value, const sig } +OFCondition DRTPlanIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTPlanIOD::getPrescriptionDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PrescriptionDescription, value, pos); @@ -2060,6 +2364,12 @@ OFCondition DRTPlanIOD::getServiceEpisodeID(OFString &value, const signed long p } +OFCondition DRTPlanIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTPlanIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -2090,6 +2400,24 @@ OFCondition DRTPlanIOD::getStationName(OFString &value, const signed long pos) c } +OFCondition DRTPlanIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTPlanIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTPlanIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTPlanIOD::getStudyDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StudyDate, value, pos); @@ -2180,6 +2508,15 @@ OFCondition DRTPlanIOD::setAdmittingDiagnosesDescription(const OFString &value, } +OFCondition DRTPlanIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setApprovalStatus(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2387,6 +2724,15 @@ OFCondition DRTPlanIOD::setDeidentificationMethod(const OFString &value, const O } +OFCondition DRTPlanIOD::setDerivationDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = DerivationDescription.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2405,6 +2751,12 @@ OFCondition DRTPlanIOD::setEthnicGroup(const OFString &value, const OFBool check } +OFCondition DRTPlanIOD::setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos) +{ + return FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.putFloat64(value, pos); +} + + OFCondition DRTPlanIOD::setFrameOfReferenceUID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; @@ -2504,6 +2856,15 @@ OFCondition DRTPlanIOD::setIssuerOfPatientID(const OFString &value, const OFBool } +OFCondition DRTPlanIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2531,6 +2892,33 @@ OFCondition DRTPlanIOD::setManufacturerModelName(const OFString &value, const OF } +OFCondition DRTPlanIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTPlanIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTPlanIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2603,6 +2991,15 @@ OFCondition DRTPlanIOD::setPatientAge(const OFString &value, const OFBool check) } +OFCondition DRTPlanIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -2612,6 +3009,15 @@ OFCondition DRTPlanIOD::setPatientBirthDate(const OFString &value, const OFBool } +OFCondition DRTPlanIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -2621,6 +3027,15 @@ OFCondition DRTPlanIOD::setPatientBirthTime(const OFString &value, const OFBool } +OFCondition DRTPlanIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2639,6 +3054,15 @@ OFCondition DRTPlanIOD::setPatientComments(const OFString &value, const OFBool c } +OFCondition DRTPlanIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2702,6 +3126,15 @@ OFCondition DRTPlanIOD::setPatientSpeciesDescription(const OFString &value, cons } +OFCondition DRTPlanIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -2798,6 +3231,12 @@ OFCondition DRTPlanIOD::setPositionReferenceIndicator(const OFString &value, con } +OFCondition DRTPlanIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTPlanIOD::setPrescriptionDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; @@ -3059,6 +3498,15 @@ OFCondition DRTPlanIOD::setServiceEpisodeID(const OFString &value, const OFBool } +OFCondition DRTPlanIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -3095,6 +3543,33 @@ OFCondition DRTPlanIOD::setStationName(const OFString &value, const OFBool check } +OFCondition DRTPlanIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTPlanIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTPlanIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTPlanIOD::setStudyDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drtporcs.cc b/dcmrt/libsrc/drtporcs.cc index 7543d603..8bcc50df 100644 --- a/dcmrt/libsrc/drtporcs.cc +++ b/dcmrt/libsrc/drtporcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPurposeOfReferenceCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTPurposeOfReferenceCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTPurposeOfReferenceCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::Item EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTPurposeOfReferenceCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTPurposeOfReferenceCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PurposeOfReferenceCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PurposeOfReferenceCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PurposeOfReferenceCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PurposeOfReferenceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PurposeOfReferenceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PurposeOfReferenceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PurposeOfReferenceCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PurposeOfReferenceCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PurposeOfReferenceCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PurposeOfReferenceCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PurposeOfReferenceCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PurposeOfReferenceCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PurposeOfReferenceCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PurposeOfReferenceCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResource(const OF } +OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtporis.cc b/dcmrt/libsrc/drtporis.cc index baa1c800..c05a9928 100644 --- a/dcmrt/libsrc/drtporis.cc +++ b/dcmrt/libsrc/drtporis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPhysiciansOfRecordIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtppcs.cc b/dcmrt/libsrc/drtppcs.cc index 9180bdd7..cfdff503 100644 --- a/dcmrt/libsrc/drtppcs.cc +++ b/dcmrt/libsrc/drtppcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPerformedProtocolCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTPerformedProtocolCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), ProtocolContextSequence(emptyDefaultItem /*emptyDefaultSequence*/), URNCodeValue(DCM_URNCodeValue) @@ -56,6 +57,7 @@ DRTPerformedProtocolCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), ProtocolContextSequence(copy.ProtocolContextSequence), URNCodeValue(copy.URNCodeValue) @@ -86,6 +88,7 @@ DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::Item:: EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; ProtocolContextSequence = copy.ProtocolContextSequence; URNCodeValue = copy.URNCodeValue; @@ -110,6 +113,7 @@ void DRTPerformedProtocolCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -132,6 +136,7 @@ OFBool DRTPerformedProtocolCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -164,6 +169,7 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PerformedProtocolCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PerformedProtocolCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PerformedProtocolCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PerformedProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PerformedProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PerformedProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PerformedProtocolCodeSequence"); @@ -192,6 +198,7 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PerformedProtocolCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PerformedProtocolCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PerformedProtocolCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PerformedProtocolCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PerformedProtocolCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PerformedProtocolCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PerformedProtocolCodeSequence"); @@ -310,6 +317,15 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -484,6 +500,19 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResource(const OFS } +OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtprsis.cc b/dcmrt/libsrc/drtprsis.cc index bb30d25b..cfb961b1 100644 --- a/dcmrt/libsrc/drtprsis.cc +++ b/dcmrt/libsrc/drtprsis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPhysiciansReadingStudyIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtpscs.cc b/dcmrt/libsrc/drtpscs.cc index 8ea54802..7606bc86 100644 --- a/dcmrt/libsrc/drtpscs.cc +++ b/dcmrt/libsrc/drtpscs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPatientSpeciesCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTPatientSpeciesCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTPatientSpeciesCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::Item::operat EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTPatientSpeciesCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTPatientSpeciesCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientSpeciesCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientSpeciesCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientSpeciesCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientSpeciesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientSpeciesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientSpeciesCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientSpeciesCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientSpeciesCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientSpeciesCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientSpeciesCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientSpeciesCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientSpeciesCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientSpeciesCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientSpeciesCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResource(OFString &va } +OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResource(const OFStri } +OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtpsics.cc b/dcmrt/libsrc/drtpsics.cc index d35b732a..1643e843 100644 --- a/dcmrt/libsrc/drtpsics.cc +++ b/dcmrt/libsrc/drtpsics.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPatientSizeCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTPatientSizeCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTPatientSizeCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::Item::operator=(co EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTPatientSizeCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTPatientSizeCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTPatientSizeCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientSizeCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientSizeCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientSizeCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientSizeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientSizeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientSizeCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientSizeCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTPatientSizeCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientSizeCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientSizeCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientSizeCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientSizeCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientSizeCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientSizeCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientSizeCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTPatientSizeCodeSequence::Item::getMappingResource(OFString &value } +OFCondition DRTPatientSizeCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTPatientSizeCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTPatientSizeCodeSequence::Item::setMappingResource(const OFString } +OFCondition DRTPatientSizeCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTPatientSizeCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtpss.cc b/dcmrt/libsrc/drtpss.cc index d33128f2..20b7461a 100644 --- a/dcmrt/libsrc/drtpss.cc +++ b/dcmrt/libsrc/drtpss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPatientSetupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtpsss.cc b/dcmrt/libsrc/drtpsss.cc index e036f820..e36717f3 100644 --- a/dcmrt/libsrc/drtpsss.cc +++ b/dcmrt/libsrc/drtpsss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPredecessorStructureSetSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtpvis.cc b/dcmrt/libsrc/drtpvis.cc index 11689b3f..27316d1a 100644 --- a/dcmrt/libsrc/drtpvis.cc +++ b/dcmrt/libsrc/drtpvis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTPlannedVerificationImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtqds.cc b/dcmrt/libsrc/drtqds.cc index 2f35e338..3a3696ac 100644 --- a/dcmrt/libsrc/drtqds.cc +++ b/dcmrt/libsrc/drtqds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTQuantityDefinitionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtras.cc b/dcmrt/libsrc/drtras.cc index 5f9a1e70..7fef16c6 100644 --- a/dcmrt/libsrc/drtras.cc +++ b/dcmrt/libsrc/drtras.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRequestAttributesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrbas2.cc b/dcmrt/libsrc/drtrbas2.cc index 361f0c57..a5fd7008 100644 --- a/dcmrt/libsrc/drtrbas2.cc +++ b/dcmrt/libsrc/drtrbas2.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrbas8.cc b/dcmrt/libsrc/drtrbas8.cc index 58051ea3..479b65b9 100644 --- a/dcmrt/libsrc/drtrbas8.cc +++ b/dcmrt/libsrc/drtrbas8.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrbls.cc b/dcmrt/libsrc/drtrbls.cc index 53254281..85318456 100644 --- a/dcmrt/libsrc/drtrbls.cc +++ b/dcmrt/libsrc/drtrbls.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedBlockSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrbos1.cc b/dcmrt/libsrc/drtrbos1.cc index aae8b6ad..6fb87623 100644 --- a/dcmrt/libsrc/drtrbos1.cc +++ b/dcmrt/libsrc/drtrbos1.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBolusSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrbos6.cc b/dcmrt/libsrc/drtrbos6.cc index 306e642e..889c92e1 100644 --- a/dcmrt/libsrc/drtrbos6.cc +++ b/dcmrt/libsrc/drtrbos6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBolusSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrbos7.cc b/dcmrt/libsrc/drtrbos7.cc index 3b04a4c0..e139bcbd 100644 --- a/dcmrt/libsrc/drtrbos7.cc +++ b/dcmrt/libsrc/drtrbos7.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrbs2.cc b/dcmrt/libsrc/drtrbs2.cc index 67a0c564..1b34d072 100644 --- a/dcmrt/libsrc/drtrbs2.cc +++ b/dcmrt/libsrc/drtrbs2.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBeamSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrbs4.cc b/dcmrt/libsrc/drtrbs4.cc index 54bc29ee..cad82eaf 100644 --- a/dcmrt/libsrc/drtrbs4.cc +++ b/dcmrt/libsrc/drtrbs4.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -21,9 +21,12 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), + AlternateBeamDose(DCM_AlternateBeamDose), + AlternateBeamDoseType(DCM_AlternateBeamDoseType), BeamDeliveryDurationLimit(DCM_BeamDeliveryDurationLimit), BeamDose(DCM_BeamDose), BeamDoseSpecificationPoint(DCM_BeamDoseSpecificationPoint), + BeamDoseType(DCM_BeamDoseType), BeamDoseVerificationControlPointSequence(emptyDefaultItem /*emptyDefaultSequence*/), BeamMeterset(DCM_BeamMeterset), ReferencedBeamNumber(DCM_ReferencedBeamNumber) @@ -33,9 +36,12 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const OFBo DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), + AlternateBeamDose(copy.AlternateBeamDose), + AlternateBeamDoseType(copy.AlternateBeamDoseType), BeamDeliveryDurationLimit(copy.BeamDeliveryDurationLimit), BeamDose(copy.BeamDose), BeamDoseSpecificationPoint(copy.BeamDoseSpecificationPoint), + BeamDoseType(copy.BeamDoseType), BeamDoseVerificationControlPointSequence(copy.BeamDoseVerificationControlPointSequence), BeamMeterset(copy.BeamMeterset), ReferencedBeamNumber(copy.ReferencedBeamNumber) @@ -53,9 +59,12 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBe if (this != ©) { EmptyDefaultItem = copy.EmptyDefaultItem; + AlternateBeamDose = copy.AlternateBeamDose; + AlternateBeamDoseType = copy.AlternateBeamDoseType; BeamDeliveryDurationLimit = copy.BeamDeliveryDurationLimit; BeamDose = copy.BeamDose; BeamDoseSpecificationPoint = copy.BeamDoseSpecificationPoint; + BeamDoseType = copy.BeamDoseType; BeamDoseVerificationControlPointSequence = copy.BeamDoseVerificationControlPointSequence; BeamMeterset = copy.BeamMeterset; ReferencedBeamNumber = copy.ReferencedBeamNumber; @@ -72,6 +81,9 @@ void DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::clear() ReferencedBeamNumber.clear(); BeamDoseSpecificationPoint.clear(); BeamDose.clear(); + BeamDoseType.clear(); + AlternateBeamDose.clear(); + AlternateBeamDoseType.clear(); BeamDoseVerificationControlPointSequence.clear(); BeamMeterset.clear(); BeamDeliveryDurationLimit.clear(); @@ -84,6 +96,9 @@ OFBool DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::isEmpty( return ReferencedBeamNumber.isEmpty() && BeamDoseSpecificationPoint.isEmpty() && BeamDose.isEmpty() && + BeamDoseType.isEmpty() && + AlternateBeamDose.isEmpty() && + AlternateBeamDoseType.isEmpty() && BeamDoseVerificationControlPointSequence.isEmpty() && BeamMeterset.isEmpty() && BeamDeliveryDurationLimit.isEmpty(); @@ -106,6 +121,9 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::rea getAndCheckElementFromDataset(item, ReferencedBeamNumber, "1", "1", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDoseSpecificationPoint, "3", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDose, "1", "3", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, BeamDoseType, "1", "1C", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, AlternateBeamDose, "1", "3", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, AlternateBeamDoseType, "1", "1C", "ReferencedBeamSequence"); BeamDoseVerificationControlPointSequence.read(item, "1-n", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamMeterset, "1", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDeliveryDurationLimit, "1", "3", "ReferencedBeamSequence"); @@ -124,6 +142,9 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::wri addElementToDataset(result, item, new DcmIntegerString(ReferencedBeamNumber), "1", "1", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamDoseSpecificationPoint), "3", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamDose), "1", "3", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(BeamDoseType), "1", "1C", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmDecimalString(AlternateBeamDose), "1", "3", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(AlternateBeamDoseType), "1", "1C", "ReferencedBeamSequence"); if (result.good()) result = BeamDoseVerificationControlPointSequence.write(item, "1-n", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamMeterset), "1", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointDouble(BeamDeliveryDurationLimit), "1", "3", "ReferencedBeamSequence"); @@ -132,6 +153,33 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::wri } +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDose(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(AlternateBeamDose, value, pos); +} + + +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDose(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, AlternateBeamDose).getFloat64(value, pos); +} + + +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDoseType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(AlternateBeamDoseType, value, pos); +} + + OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamDeliveryDurationLimit(Float64 &value, const unsigned long pos) const { if (EmptyDefaultItem) @@ -186,6 +234,15 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::get } +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamDoseType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(BeamDoseType, value, pos); +} + + OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamMeterset(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -222,6 +279,32 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::get } +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setAlternateBeamDose(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = AlternateBeamDose.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setAlternateBeamDoseType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = AlternateBeamDoseType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamDeliveryDurationLimit(const Float64 value, const unsigned long pos) { if (EmptyDefaultItem) @@ -257,6 +340,19 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::set } +OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamDoseType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = BeamDoseType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamMeterset(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtrbs8.cc b/dcmrt/libsrc/drtrbs8.cc index e2b26616..3fac5d69 100644 --- a/dcmrt/libsrc/drtrbs8.cc +++ b/dcmrt/libsrc/drtrbs8.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedBeamSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -21,9 +21,12 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), + AlternateBeamDose(DCM_AlternateBeamDose), + AlternateBeamDoseType(DCM_AlternateBeamDoseType), BeamDeliveryDurationLimit(DCM_BeamDeliveryDurationLimit), BeamDose(DCM_BeamDose), BeamDoseSpecificationPoint(DCM_BeamDoseSpecificationPoint), + BeamDoseType(DCM_BeamDoseType), BeamDoseVerificationControlPointSequence(emptyDefaultItem /*emptyDefaultSequence*/), BeamMeterset(DCM_BeamMeterset), ReferencedBeamNumber(DCM_ReferencedBeamNumber) @@ -33,9 +36,12 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const OFBool empty DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), + AlternateBeamDose(copy.AlternateBeamDose), + AlternateBeamDoseType(copy.AlternateBeamDoseType), BeamDeliveryDurationLimit(copy.BeamDeliveryDurationLimit), BeamDose(copy.BeamDose), BeamDoseSpecificationPoint(copy.BeamDoseSpecificationPoint), + BeamDoseType(copy.BeamDoseType), BeamDoseVerificationControlPointSequence(copy.BeamDoseVerificationControlPointSequence), BeamMeterset(copy.BeamMeterset), ReferencedBeamNumber(copy.ReferencedBeamNumber) @@ -53,9 +59,12 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequen if (this != ©) { EmptyDefaultItem = copy.EmptyDefaultItem; + AlternateBeamDose = copy.AlternateBeamDose; + AlternateBeamDoseType = copy.AlternateBeamDoseType; BeamDeliveryDurationLimit = copy.BeamDeliveryDurationLimit; BeamDose = copy.BeamDose; BeamDoseSpecificationPoint = copy.BeamDoseSpecificationPoint; + BeamDoseType = copy.BeamDoseType; BeamDoseVerificationControlPointSequence = copy.BeamDoseVerificationControlPointSequence; BeamMeterset = copy.BeamMeterset; ReferencedBeamNumber = copy.ReferencedBeamNumber; @@ -72,6 +81,9 @@ void DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::clear() ReferencedBeamNumber.clear(); BeamDoseSpecificationPoint.clear(); BeamDose.clear(); + BeamDoseType.clear(); + AlternateBeamDose.clear(); + AlternateBeamDoseType.clear(); BeamDoseVerificationControlPointSequence.clear(); BeamMeterset.clear(); BeamDeliveryDurationLimit.clear(); @@ -84,6 +96,9 @@ OFBool DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::isEmpty() return ReferencedBeamNumber.isEmpty() && BeamDoseSpecificationPoint.isEmpty() && BeamDose.isEmpty() && + BeamDoseType.isEmpty() && + AlternateBeamDose.isEmpty() && + AlternateBeamDoseType.isEmpty() && BeamDoseVerificationControlPointSequence.isEmpty() && BeamMeterset.isEmpty() && BeamDeliveryDurationLimit.isEmpty(); @@ -106,6 +121,9 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::read(DcmIte getAndCheckElementFromDataset(item, ReferencedBeamNumber, "1", "1", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDoseSpecificationPoint, "3", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDose, "1", "3", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, BeamDoseType, "1", "1C", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, AlternateBeamDose, "1", "3", "ReferencedBeamSequence"); + getAndCheckElementFromDataset(item, AlternateBeamDoseType, "1", "1C", "ReferencedBeamSequence"); BeamDoseVerificationControlPointSequence.read(item, "1-n", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamMeterset, "1", "3", "ReferencedBeamSequence"); getAndCheckElementFromDataset(item, BeamDeliveryDurationLimit, "1", "3", "ReferencedBeamSequence"); @@ -124,6 +142,9 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::write(DcmIt addElementToDataset(result, item, new DcmIntegerString(ReferencedBeamNumber), "1", "1", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamDoseSpecificationPoint), "3", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamDose), "1", "3", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(BeamDoseType), "1", "1C", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmDecimalString(AlternateBeamDose), "1", "3", "ReferencedBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(AlternateBeamDoseType), "1", "1C", "ReferencedBeamSequence"); if (result.good()) result = BeamDoseVerificationControlPointSequence.write(item, "1-n", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(BeamMeterset), "1", "3", "ReferencedBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointDouble(BeamDeliveryDurationLimit), "1", "3", "ReferencedBeamSequence"); @@ -132,6 +153,33 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::write(DcmIt } +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDose(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(AlternateBeamDose, value, pos); +} + + +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDose(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmDecimalString &, AlternateBeamDose).getFloat64(value, pos); +} + + +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDoseType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(AlternateBeamDoseType, value, pos); +} + + OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDeliveryDurationLimit(Float64 &value, const unsigned long pos) const { if (EmptyDefaultItem) @@ -186,6 +234,15 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDose } +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDoseType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(BeamDoseType, value, pos); +} + + OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamMeterset(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -222,6 +279,32 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getReferenc } +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setAlternateBeamDose(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = AlternateBeamDose.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setAlternateBeamDoseType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = AlternateBeamDoseType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDeliveryDurationLimit(const Float64 value, const unsigned long pos) { if (EmptyDefaultItem) @@ -257,6 +340,19 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDose } +OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDoseType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = BeamDoseType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamMeterset(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtrcdrs.cc b/dcmrt/libsrc/drtrcdrs.cc index acad21e3..f39f1ead 100644 --- a/dcmrt/libsrc/drtrcdrs.cc +++ b/dcmrt/libsrc/drtrcdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrcos.cc b/dcmrt/libsrc/drtrcos.cc index 0b3b03b0..41c1e29a 100644 --- a/dcmrt/libsrc/drtrcos.cc +++ b/dcmrt/libsrc/drtrcos.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedCompensatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrcps.cc b/dcmrt/libsrc/drtrcps.cc index c115babb..4b31beaa 100644 --- a/dcmrt/libsrc/drtrcps.cc +++ b/dcmrt/libsrc/drtrcps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedControlPointSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrcs.cc b/dcmrt/libsrc/drtrcs.cc index b64abf7e..32567678 100644 --- a/dcmrt/libsrc/drtrcs.cc +++ b/dcmrt/libsrc/drtrcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTROIContourSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrdros.cc b/dcmrt/libsrc/drtrdros.cc index d2f0e91f..f976e85e 100644 --- a/dcmrt/libsrc/drtrdros.cc +++ b/dcmrt/libsrc/drtrdros.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTDoseROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrdrs1.cc b/dcmrt/libsrc/drtrdrs1.cc index 4cd20b70..69eed36a 100644 --- a/dcmrt/libsrc/drtrdrs1.cc +++ b/dcmrt/libsrc/drtrdrs1.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedDoseReferenceSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrdrs6.cc b/dcmrt/libsrc/drtrdrs6.cc index 00610038..2d0e3adf 100644 --- a/dcmrt/libsrc/drtrdrs6.cc +++ b/dcmrt/libsrc/drtrdrs6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedDoseReferenceSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrdrs8.cc b/dcmrt/libsrc/drtrdrs8.cc index 0dadddd9..5eb40a9c 100644 --- a/dcmrt/libsrc/drtrdrs8.cc +++ b/dcmrt/libsrc/drtrdrs8.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrds.cc b/dcmrt/libsrc/drtrds.cc index 9db4526f..de7c5fe1 100644 --- a/dcmrt/libsrc/drtrds.cc +++ b/dcmrt/libsrc/drtrds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedDoseSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrecs.cc b/dcmrt/libsrc/drtrecs.cc index ec67009a..887e6ea7 100644 --- a/dcmrt/libsrc/drtrecs.cc +++ b/dcmrt/libsrc/drtrecs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTROIElementalCompositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrfgs.cc b/dcmrt/libsrc/drtrfgs.cc index e82a2865..204d045b 100644 --- a/dcmrt/libsrc/drtrfgs.cc +++ b/dcmrt/libsrc/drtrfgs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedFractionGroupSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrfors.cc b/dcmrt/libsrc/drtrfors.cc index a8b33d04..9bc8443b 100644 --- a/dcmrt/libsrc/drtrfors.cc +++ b/dcmrt/libsrc/drtrfors.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedFrameOfReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrics.cc b/dcmrt/libsrc/drtrics.cc index 8b21d114..b2a13a06 100644 --- a/dcmrt/libsrc/drtrics.cc +++ b/dcmrt/libsrc/drtrics.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTROIIdentificationCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,7 +34,9 @@ DRTRTROIIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), + SegmentedPropertyTypeModifierCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), URNCodeValue(DCM_URNCodeValue) { } @@ -55,7 +57,9 @@ DRTRTROIIdentificationCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), + SegmentedPropertyTypeModifierCodeSequence(copy.SegmentedPropertyTypeModifierCodeSequence), URNCodeValue(copy.URNCodeValue) { } @@ -84,7 +88,9 @@ DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::It EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; + SegmentedPropertyTypeModifierCodeSequence = copy.SegmentedPropertyTypeModifierCodeSequence; URNCodeValue = copy.URNCodeValue; } return *this; @@ -107,10 +113,12 @@ void DRTRTROIIdentificationCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); ContextGroupExtensionCreatorUID.clear(); + SegmentedPropertyTypeModifierCodeSequence.clear(); } } @@ -128,10 +136,12 @@ OFBool DRTRTROIIdentificationCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && - ContextGroupExtensionCreatorUID.isEmpty(); + ContextGroupExtensionCreatorUID.isEmpty() && + SegmentedPropertyTypeModifierCodeSequence.isEmpty(); } @@ -159,10 +169,12 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RTROIIdentificationCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RTROIIdentificationCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "RTROIIdentificationCodeSequence"); + SegmentedPropertyTypeModifierCodeSequence.read(item, "1-n", "3", "RTROIIdentificationCodeSequence"); result = EC_Normal; } return result; @@ -186,10 +198,12 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RTROIIdentificationCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RTROIIdentificationCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "RTROIIdentificationCodeSequence"); + if (result.good()) result = SegmentedPropertyTypeModifierCodeSequence.write(item, "1-n", "3", "RTROIIdentificationCodeSequence"); } return result; } @@ -303,6 +317,15 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResource(OFStrin } +OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +500,19 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResource(const O } +OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtrims.cc b/dcmrt/libsrc/drtrims.cc index 27c69269..48bc24e0 100644 --- a/dcmrt/libsrc/drtrims.cc +++ b/dcmrt/libsrc/drtrims.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtris.cc b/dcmrt/libsrc/drtris.cc index 4628e263..3948abca 100644 --- a/dcmrt/libsrc/drtris.cc +++ b/dcmrt/libsrc/drtris.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedInstanceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrlsds.cc b/dcmrt/libsrc/drtrlsds.cc index 41c2ead7..2b6f8e2f 100644 --- a/dcmrt/libsrc/drtrlsds.cc +++ b/dcmrt/libsrc/drtrlsds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedLateralSpreadingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrmdrs.cc b/dcmrt/libsrc/drtrmdrs.cc index f1548d24..a77e52a3 100644 --- a/dcmrt/libsrc/drtrmdrs.cc +++ b/dcmrt/libsrc/drtrmdrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrms.cc b/dcmrt/libsrc/drtrms.cc index e13e9d35..66c108c3 100644 --- a/dcmrt/libsrc/drtrms.cc +++ b/dcmrt/libsrc/drtrms.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeModulatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrmss6.cc b/dcmrt/libsrc/drtrmss6.cc index d1710aee..f386980c 100644 --- a/dcmrt/libsrc/drtrmss6.cc +++ b/dcmrt/libsrc/drtrmss6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrmss7.cc b/dcmrt/libsrc/drtrmss7.cc index 125b195e..012e113f 100644 --- a/dcmrt/libsrc/drtrmss7.cc +++ b/dcmrt/libsrc/drtrmss7.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrpcs.cc b/dcmrt/libsrc/drtrpcs.cc index 093a758a..cf13ee96 100644 --- a/dcmrt/libsrc/drtrpcs.cc +++ b/dcmrt/libsrc/drtrpcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRequestedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTRequestedProcedureCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTRequestedProcedureCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::Item EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTRequestedProcedureCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTRequestedProcedureCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RequestedProcedureCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RequestedProcedureCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RequestedProcedureCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RequestedProcedureCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResource(const OF } +OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtrpis.cc b/dcmrt/libsrc/drtrpis.cc index 0fd7a5d4..a3b4cfe2 100644 --- a/dcmrt/libsrc/drtrpis.cc +++ b/dcmrt/libsrc/drtrpis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferringPhysicianIdentificationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrppcs.cc b/dcmrt/libsrc/drtrppcs.cc index 53cd0a23..d5df1728 100644 --- a/dcmrt/libsrc/drtrppcs.cc +++ b/dcmrt/libsrc/drtrppcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReasonForPerformedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item::Item(const OFBool emptyDefault EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedure EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTReasonForPerformedProcedureCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTReasonForPerformedProcedureCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::read(DcmItem &item getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ReasonForPerformedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ReasonForPerformedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ReasonForPerformedProcedureCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ReasonForPerformedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ReasonForPerformedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ReasonForPerformedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ReasonForPerformedProcedureCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::write(DcmItem &ite addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ReasonForPerformedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ReasonForPerformedProcedureCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ReasonForPerformedProcedureCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ReasonForPerformedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ReasonForPerformedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ReasonForPerformedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ReasonForPerformedProcedureCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResource } +OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResource } +OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtrpphs.cc b/dcmrt/libsrc/drtrpphs.cc index 0a8910b9..bf0eaa3b 100644 --- a/dcmrt/libsrc/drtrpphs.cc +++ b/dcmrt/libsrc/drtrpphs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedPatientPhotoSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrpps.cc b/dcmrt/libsrc/drtrpps.cc index 6eb0ef4d..b270a498 100644 --- a/dcmrt/libsrc/drtrpps.cc +++ b/dcmrt/libsrc/drtrpps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTROIPhysicalPropertiesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrppss.cc b/dcmrt/libsrc/drtrppss.cc index 14f07440..57cfe610 100644 --- a/dcmrt/libsrc/drtrppss.cc +++ b/dcmrt/libsrc/drtrppss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedPerformedProcedureStepSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrps.cc b/dcmrt/libsrc/drtrps.cc index 03e800ef..f29c4e9e 100644 --- a/dcmrt/libsrc/drtrps.cc +++ b/dcmrt/libsrc/drtrps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedPatientSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrris1.cc b/dcmrt/libsrc/drtrris1.cc index 0feb9585..96040269 100644 --- a/dcmrt/libsrc/drtrris1.cc +++ b/dcmrt/libsrc/drtrris1.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedReferenceImageSequenceInRTBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrris6.cc b/dcmrt/libsrc/drtrris6.cc index d583bd4e..eb7d750f 100644 --- a/dcmrt/libsrc/drtrris6.cc +++ b/dcmrt/libsrc/drtrris6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedReferenceImageSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrris9.cc b/dcmrt/libsrc/drtrris9.cc index 3f51ce5d..f4976257 100644 --- a/dcmrt/libsrc/drtrris9.cc +++ b/dcmrt/libsrc/drtrris9.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrrms.cc b/dcmrt/libsrc/drtrrms.cc index 1938aae7..c72e2825 100644 --- a/dcmrt/libsrc/drtrrms.cc +++ b/dcmrt/libsrc/drtrrms.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedRangeModulatorSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrros.cc b/dcmrt/libsrc/drtrros.cc index 5d8ad67f..d6e3bf2f 100644 --- a/dcmrt/libsrc/drtrros.cc +++ b/dcmrt/libsrc/drtrros.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTROIObservationsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -21,7 +21,6 @@ DRTRTROIObservationsSequence::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), - AdditionalRTROIIdentificationCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), MaterialID(DCM_MaterialID), ObservationNumber(DCM_ObservationNumber), ROIInterpreter(DCM_ROIInterpreter), @@ -40,7 +39,6 @@ DRTRTROIObservationsSequence::Item::Item(const OFBool emptyDefaultItem) DRTRTROIObservationsSequence::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), - AdditionalRTROIIdentificationCodeSequence(copy.AdditionalRTROIIdentificationCodeSequence), MaterialID(copy.MaterialID), ObservationNumber(copy.ObservationNumber), ROIInterpreter(copy.ROIInterpreter), @@ -67,7 +65,6 @@ DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::Item::operator if (this != ©) { EmptyDefaultItem = copy.EmptyDefaultItem; - AdditionalRTROIIdentificationCodeSequence = copy.AdditionalRTROIIdentificationCodeSequence; MaterialID = copy.MaterialID; ObservationNumber = copy.ObservationNumber; ROIInterpreter = copy.ROIInterpreter; @@ -97,7 +94,6 @@ void DRTRTROIObservationsSequence::Item::clear() RTRelatedROISequence.clear(); SegmentedPropertyCategoryCodeSequence.clear(); RTROIIdentificationCodeSequence.clear(); - AdditionalRTROIIdentificationCodeSequence.clear(); RelatedRTROIObservationsSequence.clear(); RTROIInterpretedType.clear(); ROIInterpreter.clear(); @@ -116,7 +112,6 @@ OFBool DRTRTROIObservationsSequence::Item::isEmpty() RTRelatedROISequence.isEmpty() && SegmentedPropertyCategoryCodeSequence.isEmpty() && RTROIIdentificationCodeSequence.isEmpty() && - AdditionalRTROIIdentificationCodeSequence.isEmpty() && RelatedRTROIObservationsSequence.isEmpty() && RTROIInterpretedType.isEmpty() && ROIInterpreter.isEmpty() && @@ -145,7 +140,6 @@ OFCondition DRTRTROIObservationsSequence::Item::read(DcmItem &item) RTRelatedROISequence.read(item, "1-n", "3", "RTROIObservationsSequence"); SegmentedPropertyCategoryCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence"); RTROIIdentificationCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence"); - AdditionalRTROIIdentificationCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence"); RelatedRTROIObservationsSequence.read(item, "1-n", "3", "RTROIObservationsSequence"); getAndCheckElementFromDataset(item, RTROIInterpretedType, "1", "2", "RTROIObservationsSequence"); getAndCheckElementFromDataset(item, ROIInterpreter, "1", "2", "RTROIObservationsSequence"); @@ -170,7 +164,6 @@ OFCondition DRTRTROIObservationsSequence::Item::write(DcmItem &item) if (result.good()) result = RTRelatedROISequence.write(item, "1-n", "3", "RTROIObservationsSequence"); if (result.good()) result = SegmentedPropertyCategoryCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence"); if (result.good()) result = RTROIIdentificationCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence"); - if (result.good()) result = AdditionalRTROIIdentificationCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence"); if (result.good()) result = RelatedRTROIObservationsSequence.write(item, "1-n", "3", "RTROIObservationsSequence"); addElementToDataset(result, item, new DcmCodeString(RTROIInterpretedType), "1", "2", "RTROIObservationsSequence"); addElementToDataset(result, item, new DcmPersonName(ROIInterpreter), "1", "2", "RTROIObservationsSequence"); diff --git a/dcmrt/libsrc/drtrrpcs.cc b/dcmrt/libsrc/drtrrpcs.cc index 8847f972..eb89126c 100644 --- a/dcmrt/libsrc/drtrrpcs.cc +++ b/dcmrt/libsrc/drtrrpcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReasonForRequestedProcedureCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item::Item(const OFBool emptyDefault EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedure EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTReasonForRequestedProcedureCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTReasonForRequestedProcedureCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::read(DcmItem &item getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ReasonForRequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ReasonForRequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ReasonForRequestedProcedureCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ReasonForRequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ReasonForRequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ReasonForRequestedProcedureCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ReasonForRequestedProcedureCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::write(DcmItem &ite addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ReasonForRequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ReasonForRequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ReasonForRequestedProcedureCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ReasonForRequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ReasonForRequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ReasonForRequestedProcedureCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ReasonForRequestedProcedureCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResource } +OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResource } +OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtrrros.cc b/dcmrt/libsrc/drtrrros.cc index e11fe871..2a76df7f 100644 --- a/dcmrt/libsrc/drtrrros.cc +++ b/dcmrt/libsrc/drtrrros.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRelatedRTROIObservationsSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrrs.cc b/dcmrt/libsrc/drtrrs.cc index d149cb82..990e3d7e 100644 --- a/dcmrt/libsrc/drtrrs.cc +++ b/dcmrt/libsrc/drtrrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTRelatedROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrrshs.cc b/dcmrt/libsrc/drtrrshs.cc index b2988b09..ecd958bf 100644 --- a/dcmrt/libsrc/drtrrshs.cc +++ b/dcmrt/libsrc/drtrrshs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedRangeShifterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrrtps.cc b/dcmrt/libsrc/drtrrtps.cc index 2e16c556..a2945db9 100644 --- a/dcmrt/libsrc/drtrrtps.cc +++ b/dcmrt/libsrc/drtrrtps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedRTPlanSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrrtps3.cc b/dcmrt/libsrc/drtrrtps3.cc index 3f084b00..9b88d801 100644 --- a/dcmrt/libsrc/drtrrtps3.cc +++ b/dcmrt/libsrc/drtrrtps3.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedRTPlanSequenceInRTGeneralPlanModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrrtps4.cc b/dcmrt/libsrc/drtrrtps4.cc index 008b6c43..87b11b54 100644 --- a/dcmrt/libsrc/drtrrtps4.cc +++ b/dcmrt/libsrc/drtrrtps4.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrrtps5.cc b/dcmrt/libsrc/drtrrtps5.cc index 830ede14..a1657bc2 100644 --- a/dcmrt/libsrc/drtrrtps5.cc +++ b/dcmrt/libsrc/drtrrtps5.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedRTPlanSequenceInRTImageModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrscs.cc b/dcmrt/libsrc/drtrscs.cc index c31e213d..abe4cb08 100644 --- a/dcmrt/libsrc/drtrscs.cc +++ b/dcmrt/libsrc/drtrscs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRequestingServiceCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTRequestingServiceCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTRequestingServiceCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::Item:: EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTRequestingServiceCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTRequestingServiceCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTRequestingServiceCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RequestingServiceCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RequestingServiceCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RequestingServiceCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RequestingServiceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RequestingServiceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RequestingServiceCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RequestingServiceCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTRequestingServiceCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RequestingServiceCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RequestingServiceCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RequestingServiceCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RequestingServiceCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RequestingServiceCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RequestingServiceCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RequestingServiceCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResource(const OFS } +OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtrsers.cc b/dcmrt/libsrc/drtrsers.cc index fa949ae8..987b24a1 100644 --- a/dcmrt/libsrc/drtrsers.cc +++ b/dcmrt/libsrc/drtrsers.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedSeriesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrses.cc b/dcmrt/libsrc/drtrses.cc index c373227d..14f9a097 100644 --- a/dcmrt/libsrc/drtrses.cc +++ b/dcmrt/libsrc/drtrses.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTReferencedSeriesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrshs.cc b/dcmrt/libsrc/drtrshs.cc index 42d12baf..fd34f1c9 100644 --- a/dcmrt/libsrc/drtrshs.cc +++ b/dcmrt/libsrc/drtrshs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeShifterSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrshs6.cc b/dcmrt/libsrc/drtrshs6.cc index cfc26d58..27a12cc1 100644 --- a/dcmrt/libsrc/drtrshs6.cc +++ b/dcmrt/libsrc/drtrshs6.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeShifterSettingsSequenceInRTIonBeamsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrshs7.cc b/dcmrt/libsrc/drtrshs7.cc index 8f63f780..0710c442 100644 --- a/dcmrt/libsrc/drtrshs7.cc +++ b/dcmrt/libsrc/drtrshs7.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrsis.cc b/dcmrt/libsrc/drtrsis.cc index 302f3713..590b9b09 100644 --- a/dcmrt/libsrc/drtrsis.cc +++ b/dcmrt/libsrc/drtrsis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedSetupImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrsns.cc b/dcmrt/libsrc/drtrsns.cc index bbe4571c..f1938932 100644 --- a/dcmrt/libsrc/drtrsns.cc +++ b/dcmrt/libsrc/drtrsns.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedSnoutSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrsos.cc b/dcmrt/libsrc/drtrsos.cc index 857ed829..fa1f3556 100644 --- a/dcmrt/libsrc/drtrsos.cc +++ b/dcmrt/libsrc/drtrsos.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedSOPSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrsrs.cc b/dcmrt/libsrc/drtrsrs.cc index a36e5c1a..a5c6332d 100644 --- a/dcmrt/libsrc/drtrsrs.cc +++ b/dcmrt/libsrc/drtrsrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedSpatialRegistrationSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrss.cc b/dcmrt/libsrc/drtrss.cc index 0f4da67d..ab21a6af 100644 --- a/dcmrt/libsrc/drtrss.cc +++ b/dcmrt/libsrc/drtrss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedStudySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrsss.cc b/dcmrt/libsrc/drtrsss.cc index 3165635b..a03b9c23 100644 --- a/dcmrt/libsrc/drtrsss.cc +++ b/dcmrt/libsrc/drtrsss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedStructureSetSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrsts.cc b/dcmrt/libsrc/drtrsts.cc index 90ab23cc..c399bc82 100644 --- a/dcmrt/libsrc/drtrsts.cc +++ b/dcmrt/libsrc/drtrsts.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRTReferencedStudySequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrtrs2.cc b/dcmrt/libsrc/drtrtrs2.cc index f8824e26..52013db9 100644 --- a/dcmrt/libsrc/drtrtrs2.cc +++ b/dcmrt/libsrc/drtrtrs2.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedTreatmentRecordSequenceInRTDoseModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrtrs4.cc b/dcmrt/libsrc/drtrtrs4.cc index b14e8298..b671db6c 100644 --- a/dcmrt/libsrc/drtrtrs4.cc +++ b/dcmrt/libsrc/drtrtrs4.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrvis.cc b/dcmrt/libsrc/drtrvis.cc index 79341969..8e9d7f45 100644 --- a/dcmrt/libsrc/drtrvis.cc +++ b/dcmrt/libsrc/drtrvis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTReferencedVerificationImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrws.cc b/dcmrt/libsrc/drtrws.cc index c7945342..1547bda2 100644 --- a/dcmrt/libsrc/drtrws.cc +++ b/dcmrt/libsrc/drtrws.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRecordedWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtrwvms.cc b/dcmrt/libsrc/drtrwvms.cc index 9f709552..6698b8e9 100644 --- a/dcmrt/libsrc/drtrwvms.cc +++ b/dcmrt/libsrc/drtrwvms.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTRealWorldValueMappingSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -21,6 +21,8 @@ DRTRealWorldValueMappingSequence::Item::Item(const OFBool emptyDefaultItem) : EmptyDefaultItem(emptyDefaultItem), + DoubleFloatRealWorldValueFirstValueMapped(DCM_DoubleFloatRealWorldValueFirstValueMapped), + DoubleFloatRealWorldValueLastValueMapped(DCM_DoubleFloatRealWorldValueLastValueMapped), LUTExplanation(DCM_LUTExplanation), LUTLabel(DCM_LUTLabel), MeasurementUnitsCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), @@ -36,6 +38,8 @@ DRTRealWorldValueMappingSequence::Item::Item(const OFBool emptyDefaultItem) DRTRealWorldValueMappingSequence::Item::Item(const Item ©) : EmptyDefaultItem(copy.EmptyDefaultItem), + DoubleFloatRealWorldValueFirstValueMapped(copy.DoubleFloatRealWorldValueFirstValueMapped), + DoubleFloatRealWorldValueLastValueMapped(copy.DoubleFloatRealWorldValueLastValueMapped), LUTExplanation(copy.LUTExplanation), LUTLabel(copy.LUTLabel), MeasurementUnitsCodeSequence(copy.MeasurementUnitsCodeSequence), @@ -59,6 +63,8 @@ DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::Item:: if (this != ©) { EmptyDefaultItem = copy.EmptyDefaultItem; + DoubleFloatRealWorldValueFirstValueMapped = copy.DoubleFloatRealWorldValueFirstValueMapped; + DoubleFloatRealWorldValueLastValueMapped = copy.DoubleFloatRealWorldValueLastValueMapped; LUTExplanation = copy.LUTExplanation; LUTLabel = copy.LUTLabel; MeasurementUnitsCodeSequence = copy.MeasurementUnitsCodeSequence; @@ -80,6 +86,8 @@ void DRTRealWorldValueMappingSequence::Item::clear() /* clear all DICOM attributes */ RealWorldValueFirstValueMapped.clear(); RealWorldValueLastValueMapped.clear(); + DoubleFloatRealWorldValueFirstValueMapped.clear(); + DoubleFloatRealWorldValueLastValueMapped.clear(); RealWorldValueIntercept.clear(); RealWorldValueSlope.clear(); RealWorldValueLUTData.clear(); @@ -95,6 +103,8 @@ OFBool DRTRealWorldValueMappingSequence::Item::isEmpty() { return RealWorldValueFirstValueMapped.isEmpty() && RealWorldValueLastValueMapped.isEmpty() && + DoubleFloatRealWorldValueFirstValueMapped.isEmpty() && + DoubleFloatRealWorldValueLastValueMapped.isEmpty() && RealWorldValueIntercept.isEmpty() && RealWorldValueSlope.isEmpty() && RealWorldValueLUTData.isEmpty() && @@ -118,8 +128,10 @@ OFCondition DRTRealWorldValueMappingSequence::Item::read(DcmItem &item) { /* re-initialize object */ clear(); - getAndCheckElementFromDataset(item, RealWorldValueFirstValueMapped, "1", "1", "RealWorldValueMappingSequence"); - getAndCheckElementFromDataset(item, RealWorldValueLastValueMapped, "1", "1", "RealWorldValueMappingSequence"); + getAndCheckElementFromDataset(item, RealWorldValueFirstValueMapped, "1", "1C", "RealWorldValueMappingSequence"); + getAndCheckElementFromDataset(item, RealWorldValueLastValueMapped, "1", "1C", "RealWorldValueMappingSequence"); + getAndCheckElementFromDataset(item, DoubleFloatRealWorldValueFirstValueMapped, "1", "1C", "RealWorldValueMappingSequence"); + getAndCheckElementFromDataset(item, DoubleFloatRealWorldValueLastValueMapped, "1", "1C", "RealWorldValueMappingSequence"); getAndCheckElementFromDataset(item, RealWorldValueIntercept, "1", "1C", "RealWorldValueMappingSequence"); getAndCheckElementFromDataset(item, RealWorldValueSlope, "1", "1C", "RealWorldValueMappingSequence"); getAndCheckElementFromDataset(item, RealWorldValueLUTData, "1-n", "1C", "RealWorldValueMappingSequence"); @@ -139,8 +151,10 @@ OFCondition DRTRealWorldValueMappingSequence::Item::write(DcmItem &item) if (!EmptyDefaultItem) { result = EC_Normal; - addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueFirstValueMapped), "1", "1", "RealWorldValueMappingSequence"); - addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueLastValueMapped), "1", "1", "RealWorldValueMappingSequence"); + addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueFirstValueMapped), "1", "1C", "RealWorldValueMappingSequence"); + addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueLastValueMapped), "1", "1C", "RealWorldValueMappingSequence"); + addElementToDataset(result, item, new DcmFloatingPointDouble(DoubleFloatRealWorldValueFirstValueMapped), "1", "1C", "RealWorldValueMappingSequence"); + addElementToDataset(result, item, new DcmFloatingPointDouble(DoubleFloatRealWorldValueLastValueMapped), "1", "1C", "RealWorldValueMappingSequence"); addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueIntercept), "1", "1C", "RealWorldValueMappingSequence"); addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueSlope), "1", "1C", "RealWorldValueMappingSequence"); addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueLUTData), "1-n", "1C", "RealWorldValueMappingSequence"); @@ -153,6 +167,24 @@ OFCondition DRTRealWorldValueMappingSequence::Item::write(DcmItem &item) } +OFCondition DRTRealWorldValueMappingSequence::Item::getDoubleFloatRealWorldValueFirstValueMapped(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointDouble &, DoubleFloatRealWorldValueFirstValueMapped).getFloat64(value, pos); +} + + +OFCondition DRTRealWorldValueMappingSequence::Item::getDoubleFloatRealWorldValueLastValueMapped(Float64 &value, const unsigned long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return OFconst_cast(DcmFloatingPointDouble &, DoubleFloatRealWorldValueLastValueMapped).getFloat64(value, pos); +} + + OFCondition DRTRealWorldValueMappingSequence::Item::getLUTExplanation(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -216,6 +248,24 @@ OFCondition DRTRealWorldValueMappingSequence::Item::getRealWorldValueSlope(Float } +OFCondition DRTRealWorldValueMappingSequence::Item::setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DoubleFloatRealWorldValueFirstValueMapped.putFloat64(value, pos); +} + + +OFCondition DRTRealWorldValueMappingSequence::Item::setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, const unsigned long pos) +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return DoubleFloatRealWorldValueLastValueMapped.putFloat64(value, pos); +} + + OFCondition DRTRealWorldValueMappingSequence::Item::setLUTExplanation(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtscris.cc b/dcmrt/libsrc/drtscris.cc index 78a10f0e..45f0d8a9 100644 --- a/dcmrt/libsrc/drtscris.cc +++ b/dcmrt/libsrc/drtscris.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTStudiesContainingOtherReferencedInstancesSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtscs.cc b/dcmrt/libsrc/drtscs.cc new file mode 100644 index 00000000..143661cd --- /dev/null +++ b/dcmrt/libsrc/drtscs.cc @@ -0,0 +1,957 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTStrainCodeSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtscs.h" + + +// --- item class --- + +DRTStrainCodeSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + CodeMeaning(DCM_CodeMeaning), + CodeValue(DCM_CodeValue), + CodingSchemeDesignator(DCM_CodingSchemeDesignator), + CodingSchemeVersion(DCM_CodingSchemeVersion), + ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag), + ContextGroupLocalVersion(DCM_ContextGroupLocalVersion), + ContextGroupVersion(DCM_ContextGroupVersion), + ContextIdentifier(DCM_ContextIdentifier), + ContextUID(DCM_ContextUID), + EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), + LongCodeValue(DCM_LongCodeValue), + MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), + MappingResourceUID(DCM_MappingResourceUID), + URNCodeValue(DCM_URNCodeValue) +{ +} + + +DRTStrainCodeSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + CodeMeaning(copy.CodeMeaning), + CodeValue(copy.CodeValue), + CodingSchemeDesignator(copy.CodingSchemeDesignator), + CodingSchemeVersion(copy.CodingSchemeVersion), + ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag), + ContextGroupLocalVersion(copy.ContextGroupLocalVersion), + ContextGroupVersion(copy.ContextGroupVersion), + ContextIdentifier(copy.ContextIdentifier), + ContextUID(copy.ContextUID), + EquivalentCodeSequence(copy.EquivalentCodeSequence), + LongCodeValue(copy.LongCodeValue), + MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), + MappingResourceUID(copy.MappingResourceUID), + URNCodeValue(copy.URNCodeValue) +{ +} + + +DRTStrainCodeSequence::Item::~Item() +{ +} + + +DRTStrainCodeSequence::Item &DRTStrainCodeSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + CodeMeaning = copy.CodeMeaning; + CodeValue = copy.CodeValue; + CodingSchemeDesignator = copy.CodingSchemeDesignator; + CodingSchemeVersion = copy.CodingSchemeVersion; + ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID; + ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag; + ContextGroupLocalVersion = copy.ContextGroupLocalVersion; + ContextGroupVersion = copy.ContextGroupVersion; + ContextIdentifier = copy.ContextIdentifier; + ContextUID = copy.ContextUID; + EquivalentCodeSequence = copy.EquivalentCodeSequence; + LongCodeValue = copy.LongCodeValue; + MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; + MappingResourceUID = copy.MappingResourceUID; + URNCodeValue = copy.URNCodeValue; + } + return *this; +} + + +void DRTStrainCodeSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + CodeValue.clear(); + CodingSchemeDesignator.clear(); + CodingSchemeVersion.clear(); + CodeMeaning.clear(); + LongCodeValue.clear(); + URNCodeValue.clear(); + EquivalentCodeSequence.clear(); + ContextIdentifier.clear(); + ContextUID.clear(); + MappingResource.clear(); + MappingResourceUID.clear(); + MappingResourceName.clear(); + ContextGroupVersion.clear(); + ContextGroupExtensionFlag.clear(); + ContextGroupLocalVersion.clear(); + ContextGroupExtensionCreatorUID.clear(); + } +} + + +OFBool DRTStrainCodeSequence::Item::isEmpty() +{ + return CodeValue.isEmpty() && + CodingSchemeDesignator.isEmpty() && + CodingSchemeVersion.isEmpty() && + CodeMeaning.isEmpty() && + LongCodeValue.isEmpty() && + URNCodeValue.isEmpty() && + EquivalentCodeSequence.isEmpty() && + ContextIdentifier.isEmpty() && + ContextUID.isEmpty() && + MappingResource.isEmpty() && + MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && + ContextGroupVersion.isEmpty() && + ContextGroupExtensionFlag.isEmpty() && + ContextGroupLocalVersion.isEmpty() && + ContextGroupExtensionCreatorUID.isEmpty(); +} + + +OFBool DRTStrainCodeSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTStrainCodeSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "StrainCodeSequence"); + EquivalentCodeSequence.read(item, "1-n", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextUID, "1", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "StrainCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "StrainCodeSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "StrainCodeSequence"); + if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "StrainCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "StrainCodeSequence"); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodeMeaning, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodeValue, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodingSchemeDesignator, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodingSchemeVersion, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionFlag, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupLocalVersion, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupVersion, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextIdentifier, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextUID, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(LongCodeValue, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceUID, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(URNCodeValue, value, pos); +} + + +OFCondition DRTStrainCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodeMeaning.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodeValue.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodingSchemeDesignator.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodingSchemeVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionCreatorUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionFlag.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupLocalVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextIdentifier.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setContextUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LongCodeValue.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal; + if (result.good()) + result = URNCodeValue.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTStrainCodeSequence::DRTStrainCodeSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTStrainCodeSequence::DRTStrainCodeSequence(const DRTStrainCodeSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTStrainCodeSequence &DRTStrainCodeSequence::operator=(const DRTStrainCodeSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTStrainCodeSequence::~DRTStrainCodeSequence() +{ + clear(); +} + + +void DRTStrainCodeSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTStrainCodeSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTStrainCodeSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTStrainCodeSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTStrainCodeSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTStrainCodeSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTStrainCodeSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTStrainCodeSequence::Item &DRTStrainCodeSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTStrainCodeSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTStrainCodeSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainCodeSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_StrainCodeSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_StrainCodeSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTStrainCodeSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainCodeSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtsdcs.cc b/dcmrt/libsrc/drtsdcs.cc index 5dd75d95..d53b3366 100644 --- a/dcmrt/libsrc/drtsdcs.cc +++ b/dcmrt/libsrc/drtsdcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSeriesDescriptionCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTSeriesDescriptionCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTSeriesDescriptionCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::Item:: EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTSeriesDescriptionCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTSeriesDescriptionCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SeriesDescriptionCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SeriesDescriptionCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SeriesDescriptionCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SeriesDescriptionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SeriesDescriptionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SeriesDescriptionCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SeriesDescriptionCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SeriesDescriptionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SeriesDescriptionCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SeriesDescriptionCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SeriesDescriptionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SeriesDescriptionCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SeriesDescriptionCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SeriesDescriptionCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResource(const OFS } +OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtsds.cc b/dcmrt/libsrc/drtsds.cc index 946e5936..b97c0507 100644 --- a/dcmrt/libsrc/drtsds.cc +++ b/dcmrt/libsrc/drtsds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSetupDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtshds.cc b/dcmrt/libsrc/drtshds.cc index 844fc958..8c796d75 100644 --- a/dcmrt/libsrc/drtshds.cc +++ b/dcmrt/libsrc/drtshds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTShieldingDeviceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtsins.cc b/dcmrt/libsrc/drtsins.cc new file mode 100644 index 00000000..7eb427b4 --- /dev/null +++ b/dcmrt/libsrc/drtsins.cc @@ -0,0 +1,580 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTSourceInstanceSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtsins.h" + + +// --- item class --- + +DRTSourceInstanceSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + PurposeOfReferenceCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), + ReferencedSOPClassUID(DCM_ReferencedSOPClassUID), + ReferencedSOPInstanceUID(DCM_ReferencedSOPInstanceUID) +{ +} + + +DRTSourceInstanceSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + PurposeOfReferenceCodeSequence(copy.PurposeOfReferenceCodeSequence), + ReferencedSOPClassUID(copy.ReferencedSOPClassUID), + ReferencedSOPInstanceUID(copy.ReferencedSOPInstanceUID) +{ +} + + +DRTSourceInstanceSequence::Item::~Item() +{ +} + + +DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + PurposeOfReferenceCodeSequence = copy.PurposeOfReferenceCodeSequence; + ReferencedSOPClassUID = copy.ReferencedSOPClassUID; + ReferencedSOPInstanceUID = copy.ReferencedSOPInstanceUID; + } + return *this; +} + + +void DRTSourceInstanceSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + ReferencedSOPClassUID.clear(); + ReferencedSOPInstanceUID.clear(); + PurposeOfReferenceCodeSequence.clear(); + } +} + + +OFBool DRTSourceInstanceSequence::Item::isEmpty() +{ + return ReferencedSOPClassUID.isEmpty() && + ReferencedSOPInstanceUID.isEmpty() && + PurposeOfReferenceCodeSequence.isEmpty(); +} + + +OFBool DRTSourceInstanceSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTSourceInstanceSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, ReferencedSOPClassUID, "1", "1", "SourceInstanceSequence"); + getAndCheckElementFromDataset(item, ReferencedSOPInstanceUID, "1", "1", "SourceInstanceSequence"); + PurposeOfReferenceCodeSequence.read(item, "1-n", "3", "SourceInstanceSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPClassUID), "1", "1", "SourceInstanceSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPInstanceUID), "1", "1", "SourceInstanceSequence"); + if (result.good()) result = PurposeOfReferenceCodeSequence.write(item, "1-n", "3", "SourceInstanceSequence"); + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::Item::getReferencedSOPClassUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ReferencedSOPClassUID, value, pos); +} + + +OFCondition DRTSourceInstanceSequence::Item::getReferencedSOPInstanceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ReferencedSOPInstanceUID, value, pos); +} + + +OFCondition DRTSourceInstanceSequence::Item::setReferencedSOPClassUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ReferencedSOPClassUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::Item::setReferencedSOPInstanceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ReferencedSOPInstanceUID.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTSourceInstanceSequence::DRTSourceInstanceSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTSourceInstanceSequence::DRTSourceInstanceSequence(const DRTSourceInstanceSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTSourceInstanceSequence &DRTSourceInstanceSequence::operator=(const DRTSourceInstanceSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTSourceInstanceSequence::~DRTSourceInstanceSequence() +{ + clear(); +} + + +void DRTSourceInstanceSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTSourceInstanceSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTSourceInstanceSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTSourceInstanceSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTSourceInstanceSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTSourceInstanceSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTSourceInstanceSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTSourceInstanceSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_SourceInstanceSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_SourceInstanceSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTSourceInstanceSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SourceInstanceSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtsis.cc b/dcmrt/libsrc/drtsis.cc index 85b953c9..0213e7c8 100644 --- a/dcmrt/libsrc/drtsis.cc +++ b/dcmrt/libsrc/drtsis.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSourceImageSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtsns.cc b/dcmrt/libsrc/drtsns.cc index b0febd2b..f1a1d35e 100644 --- a/dcmrt/libsrc/drtsns.cc +++ b/dcmrt/libsrc/drtsns.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSnoutSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtspccs.cc b/dcmrt/libsrc/drtspccs.cc index be55f83c..a504265b 100644 --- a/dcmrt/libsrc/drtspccs.cc +++ b/dcmrt/libsrc/drtspccs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSegmentedPropertyCategoryCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item::Item(const OFBool emptyDefaultIt EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), URNCodeValue(DCM_URNCodeValue) { @@ -55,6 +56,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), URNCodeValue(copy.URNCodeValue) { @@ -84,6 +86,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCode EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; URNCodeValue = copy.URNCodeValue; } @@ -107,6 +110,7 @@ void DRTSegmentedPropertyCategoryCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -128,6 +132,7 @@ OFBool DRTSegmentedPropertyCategoryCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -159,6 +164,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SegmentedPropertyCategoryCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SegmentedPropertyCategoryCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SegmentedPropertyCategoryCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SegmentedPropertyCategoryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SegmentedPropertyCategoryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SegmentedPropertyCategoryCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SegmentedPropertyCategoryCodeSequence"); @@ -186,6 +192,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SegmentedPropertyCategoryCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SegmentedPropertyCategoryCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SegmentedPropertyCategoryCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SegmentedPropertyCategoryCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SegmentedPropertyCategoryCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SegmentedPropertyCategoryCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SegmentedPropertyCategoryCodeSequence"); @@ -303,6 +310,15 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResource(O } +OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -477,6 +493,19 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResource(c } +OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtspcs.cc b/dcmrt/libsrc/drtspcs.cc index 7f47f65e..fc2a4402 100644 --- a/dcmrt/libsrc/drtspcs.cc +++ b/dcmrt/libsrc/drtspcs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTScheduledProtocolCodeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -34,6 +34,7 @@ DRTScheduledProtocolCodeSequence::Item::Item(const OFBool emptyDefaultItem) EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), LongCodeValue(DCM_LongCodeValue), MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), MappingResourceUID(DCM_MappingResourceUID), ProtocolContextSequence(emptyDefaultItem /*emptyDefaultSequence*/), URNCodeValue(DCM_URNCodeValue) @@ -56,6 +57,7 @@ DRTScheduledProtocolCodeSequence::Item::Item(const Item ©) EquivalentCodeSequence(copy.EquivalentCodeSequence), LongCodeValue(copy.LongCodeValue), MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), MappingResourceUID(copy.MappingResourceUID), ProtocolContextSequence(copy.ProtocolContextSequence), URNCodeValue(copy.URNCodeValue) @@ -86,6 +88,7 @@ DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::Item:: EquivalentCodeSequence = copy.EquivalentCodeSequence; LongCodeValue = copy.LongCodeValue; MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; MappingResourceUID = copy.MappingResourceUID; ProtocolContextSequence = copy.ProtocolContextSequence; URNCodeValue = copy.URNCodeValue; @@ -110,6 +113,7 @@ void DRTScheduledProtocolCodeSequence::Item::clear() ContextUID.clear(); MappingResource.clear(); MappingResourceUID.clear(); + MappingResourceName.clear(); ContextGroupVersion.clear(); ContextGroupExtensionFlag.clear(); ContextGroupLocalVersion.clear(); @@ -132,6 +136,7 @@ OFBool DRTScheduledProtocolCodeSequence::Item::isEmpty() ContextUID.isEmpty() && MappingResource.isEmpty() && MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && ContextGroupVersion.isEmpty() && ContextGroupExtensionFlag.isEmpty() && ContextGroupLocalVersion.isEmpty() && @@ -164,6 +169,7 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ScheduledProtocolCodeSequence"); getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ScheduledProtocolCodeSequence"); getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ScheduledProtocolCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ScheduledProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ScheduledProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ScheduledProtocolCodeSequence"); getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ScheduledProtocolCodeSequence"); @@ -192,6 +198,7 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ScheduledProtocolCodeSequence"); addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ScheduledProtocolCodeSequence"); addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ScheduledProtocolCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ScheduledProtocolCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ScheduledProtocolCodeSequence"); addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ScheduledProtocolCodeSequence"); addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ScheduledProtocolCodeSequence"); @@ -310,6 +317,15 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResource(OFString } +OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -484,6 +500,19 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResource(const OFS } +OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drtspgis.cc b/dcmrt/libsrc/drtspgis.cc new file mode 100644 index 00000000..a105a57f --- /dev/null +++ b/dcmrt/libsrc/drtspgis.cc @@ -0,0 +1,580 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTSourcePatientGroupIdentificationSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtspgis.h" + + +// --- item class --- + +DRTSourcePatientGroupIdentificationSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + IssuerOfPatientID(DCM_IssuerOfPatientID), + IssuerOfPatientIDQualifiersSequence(emptyDefaultItem /*emptyDefaultSequence*/), + PatientID(DCM_PatientID) +{ +} + + +DRTSourcePatientGroupIdentificationSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + IssuerOfPatientID(copy.IssuerOfPatientID), + IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), + PatientID(copy.PatientID) +{ +} + + +DRTSourcePatientGroupIdentificationSequence::Item::~Item() +{ +} + + +DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + IssuerOfPatientID = copy.IssuerOfPatientID; + IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; + PatientID = copy.PatientID; + } + return *this; +} + + +void DRTSourcePatientGroupIdentificationSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + PatientID.clear(); + IssuerOfPatientID.clear(); + IssuerOfPatientIDQualifiersSequence.clear(); + } +} + + +OFBool DRTSourcePatientGroupIdentificationSequence::Item::isEmpty() +{ + return PatientID.isEmpty() && + IssuerOfPatientID.isEmpty() && + IssuerOfPatientIDQualifiersSequence.isEmpty(); +} + + +OFBool DRTSourcePatientGroupIdentificationSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, PatientID, "1", "1", "SourcePatientGroupIdentificationSequence"); + getAndCheckElementFromDataset(item, IssuerOfPatientID, "1", "3", "SourcePatientGroupIdentificationSequence"); + IssuerOfPatientIDQualifiersSequence.read(item, "1-n", "3", "SourcePatientGroupIdentificationSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmLongString(PatientID), "1", "1", "SourcePatientGroupIdentificationSequence"); + addElementToDataset(result, item, new DcmLongString(IssuerOfPatientID), "1", "3", "SourcePatientGroupIdentificationSequence"); + if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(item, "1-n", "3", "SourcePatientGroupIdentificationSequence"); + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::getIssuerOfPatientID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(IssuerOfPatientID, value, pos); +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::getPatientID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(PatientID, value, pos); +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::setIssuerOfPatientID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = IssuerOfPatientID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::Item::setPatientID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientID.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTSourcePatientGroupIdentificationSequence::DRTSourcePatientGroupIdentificationSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTSourcePatientGroupIdentificationSequence::DRTSourcePatientGroupIdentificationSequence(const DRTSourcePatientGroupIdentificationSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTSourcePatientGroupIdentificationSequence &DRTSourcePatientGroupIdentificationSequence::operator=(const DRTSourcePatientGroupIdentificationSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTSourcePatientGroupIdentificationSequence::~DRTSourcePatientGroupIdentificationSequence() +{ + clear(); +} + + +void DRTSourcePatientGroupIdentificationSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTSourcePatientGroupIdentificationSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTSourcePatientGroupIdentificationSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTSourcePatientGroupIdentificationSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_SourcePatientGroupIdentificationSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_SourcePatientGroupIdentificationSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTSourcePatientGroupIdentificationSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SourcePatientGroupIdentificationSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtsptcs.cc b/dcmrt/libsrc/drtsptcs.cc new file mode 100644 index 00000000..ac10cb98 --- /dev/null +++ b/dcmrt/libsrc/drtsptcs.cc @@ -0,0 +1,957 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTSegmentedPropertyTypeModifierCodeSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtsptcs.h" + + +// --- item class --- + +DRTSegmentedPropertyTypeModifierCodeSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + CodeMeaning(DCM_CodeMeaning), + CodeValue(DCM_CodeValue), + CodingSchemeDesignator(DCM_CodingSchemeDesignator), + CodingSchemeVersion(DCM_CodingSchemeVersion), + ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag), + ContextGroupLocalVersion(DCM_ContextGroupLocalVersion), + ContextGroupVersion(DCM_ContextGroupVersion), + ContextIdentifier(DCM_ContextIdentifier), + ContextUID(DCM_ContextUID), + EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), + LongCodeValue(DCM_LongCodeValue), + MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), + MappingResourceUID(DCM_MappingResourceUID), + URNCodeValue(DCM_URNCodeValue) +{ +} + + +DRTSegmentedPropertyTypeModifierCodeSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + CodeMeaning(copy.CodeMeaning), + CodeValue(copy.CodeValue), + CodingSchemeDesignator(copy.CodingSchemeDesignator), + CodingSchemeVersion(copy.CodingSchemeVersion), + ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag), + ContextGroupLocalVersion(copy.ContextGroupLocalVersion), + ContextGroupVersion(copy.ContextGroupVersion), + ContextIdentifier(copy.ContextIdentifier), + ContextUID(copy.ContextUID), + EquivalentCodeSequence(copy.EquivalentCodeSequence), + LongCodeValue(copy.LongCodeValue), + MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), + MappingResourceUID(copy.MappingResourceUID), + URNCodeValue(copy.URNCodeValue) +{ +} + + +DRTSegmentedPropertyTypeModifierCodeSequence::Item::~Item() +{ +} + + +DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + CodeMeaning = copy.CodeMeaning; + CodeValue = copy.CodeValue; + CodingSchemeDesignator = copy.CodingSchemeDesignator; + CodingSchemeVersion = copy.CodingSchemeVersion; + ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID; + ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag; + ContextGroupLocalVersion = copy.ContextGroupLocalVersion; + ContextGroupVersion = copy.ContextGroupVersion; + ContextIdentifier = copy.ContextIdentifier; + ContextUID = copy.ContextUID; + EquivalentCodeSequence = copy.EquivalentCodeSequence; + LongCodeValue = copy.LongCodeValue; + MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; + MappingResourceUID = copy.MappingResourceUID; + URNCodeValue = copy.URNCodeValue; + } + return *this; +} + + +void DRTSegmentedPropertyTypeModifierCodeSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + CodeValue.clear(); + CodingSchemeDesignator.clear(); + CodingSchemeVersion.clear(); + CodeMeaning.clear(); + LongCodeValue.clear(); + URNCodeValue.clear(); + EquivalentCodeSequence.clear(); + ContextIdentifier.clear(); + ContextUID.clear(); + MappingResource.clear(); + MappingResourceUID.clear(); + MappingResourceName.clear(); + ContextGroupVersion.clear(); + ContextGroupExtensionFlag.clear(); + ContextGroupLocalVersion.clear(); + ContextGroupExtensionCreatorUID.clear(); + } +} + + +OFBool DRTSegmentedPropertyTypeModifierCodeSequence::Item::isEmpty() +{ + return CodeValue.isEmpty() && + CodingSchemeDesignator.isEmpty() && + CodingSchemeVersion.isEmpty() && + CodeMeaning.isEmpty() && + LongCodeValue.isEmpty() && + URNCodeValue.isEmpty() && + EquivalentCodeSequence.isEmpty() && + ContextIdentifier.isEmpty() && + ContextUID.isEmpty() && + MappingResource.isEmpty() && + MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && + ContextGroupVersion.isEmpty() && + ContextGroupExtensionFlag.isEmpty() && + ContextGroupLocalVersion.isEmpty() && + ContextGroupExtensionCreatorUID.isEmpty(); +} + + +OFBool DRTSegmentedPropertyTypeModifierCodeSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + EquivalentCodeSequence.read(item, "1-n", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence"); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodeMeaning, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodeValue, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodingSchemeDesignator, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodingSchemeVersion, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionFlag, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupLocalVersion, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupVersion, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextIdentifier, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextUID, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(LongCodeValue, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceUID, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(URNCodeValue, value, pos); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodeMeaning.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodeValue.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodingSchemeDesignator.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodingSchemeVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionCreatorUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionFlag.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupLocalVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextIdentifier.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LongCodeValue.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal; + if (result.good()) + result = URNCodeValue.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTSegmentedPropertyTypeModifierCodeSequence::DRTSegmentedPropertyTypeModifierCodeSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTSegmentedPropertyTypeModifierCodeSequence::DRTSegmentedPropertyTypeModifierCodeSequence(const DRTSegmentedPropertyTypeModifierCodeSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTSegmentedPropertyTypeModifierCodeSequence &DRTSegmentedPropertyTypeModifierCodeSequence::operator=(const DRTSegmentedPropertyTypeModifierCodeSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTSegmentedPropertyTypeModifierCodeSequence::~DRTSegmentedPropertyTypeModifierCodeSequence() +{ + clear(); +} + + +void DRTSegmentedPropertyTypeModifierCodeSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTSegmentedPropertyTypeModifierCodeSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTSegmentedPropertyTypeModifierCodeSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTSegmentedPropertyTypeModifierCodeSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_SegmentedPropertyTypeModifierCodeSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_SegmentedPropertyTypeModifierCodeSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SegmentedPropertyTypeModifierCodeSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtss.cc b/dcmrt/libsrc/drtss.cc index 0bfbd0c6..00bb93a8 100644 --- a/dcmrt/libsrc/drtss.cc +++ b/dcmrt/libsrc/drtss.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTSourceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtssrcs.cc b/dcmrt/libsrc/drtssrcs.cc new file mode 100644 index 00000000..da24b051 --- /dev/null +++ b/dcmrt/libsrc/drtssrcs.cc @@ -0,0 +1,957 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTStrainSourceRegistryCodeSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtssrcs.h" + + +// --- item class --- + +DRTStrainSourceRegistryCodeSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + CodeMeaning(DCM_CodeMeaning), + CodeValue(DCM_CodeValue), + CodingSchemeDesignator(DCM_CodingSchemeDesignator), + CodingSchemeVersion(DCM_CodingSchemeVersion), + ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag), + ContextGroupLocalVersion(DCM_ContextGroupLocalVersion), + ContextGroupVersion(DCM_ContextGroupVersion), + ContextIdentifier(DCM_ContextIdentifier), + ContextUID(DCM_ContextUID), + EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), + LongCodeValue(DCM_LongCodeValue), + MappingResource(DCM_MappingResource), + MappingResourceName(DCM_MappingResourceName), + MappingResourceUID(DCM_MappingResourceUID), + URNCodeValue(DCM_URNCodeValue) +{ +} + + +DRTStrainSourceRegistryCodeSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + CodeMeaning(copy.CodeMeaning), + CodeValue(copy.CodeValue), + CodingSchemeDesignator(copy.CodingSchemeDesignator), + CodingSchemeVersion(copy.CodingSchemeVersion), + ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID), + ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag), + ContextGroupLocalVersion(copy.ContextGroupLocalVersion), + ContextGroupVersion(copy.ContextGroupVersion), + ContextIdentifier(copy.ContextIdentifier), + ContextUID(copy.ContextUID), + EquivalentCodeSequence(copy.EquivalentCodeSequence), + LongCodeValue(copy.LongCodeValue), + MappingResource(copy.MappingResource), + MappingResourceName(copy.MappingResourceName), + MappingResourceUID(copy.MappingResourceUID), + URNCodeValue(copy.URNCodeValue) +{ +} + + +DRTStrainSourceRegistryCodeSequence::Item::~Item() +{ +} + + +DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + CodeMeaning = copy.CodeMeaning; + CodeValue = copy.CodeValue; + CodingSchemeDesignator = copy.CodingSchemeDesignator; + CodingSchemeVersion = copy.CodingSchemeVersion; + ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID; + ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag; + ContextGroupLocalVersion = copy.ContextGroupLocalVersion; + ContextGroupVersion = copy.ContextGroupVersion; + ContextIdentifier = copy.ContextIdentifier; + ContextUID = copy.ContextUID; + EquivalentCodeSequence = copy.EquivalentCodeSequence; + LongCodeValue = copy.LongCodeValue; + MappingResource = copy.MappingResource; + MappingResourceName = copy.MappingResourceName; + MappingResourceUID = copy.MappingResourceUID; + URNCodeValue = copy.URNCodeValue; + } + return *this; +} + + +void DRTStrainSourceRegistryCodeSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + CodeValue.clear(); + CodingSchemeDesignator.clear(); + CodingSchemeVersion.clear(); + CodeMeaning.clear(); + LongCodeValue.clear(); + URNCodeValue.clear(); + EquivalentCodeSequence.clear(); + ContextIdentifier.clear(); + ContextUID.clear(); + MappingResource.clear(); + MappingResourceUID.clear(); + MappingResourceName.clear(); + ContextGroupVersion.clear(); + ContextGroupExtensionFlag.clear(); + ContextGroupLocalVersion.clear(); + ContextGroupExtensionCreatorUID.clear(); + } +} + + +OFBool DRTStrainSourceRegistryCodeSequence::Item::isEmpty() +{ + return CodeValue.isEmpty() && + CodingSchemeDesignator.isEmpty() && + CodingSchemeVersion.isEmpty() && + CodeMeaning.isEmpty() && + LongCodeValue.isEmpty() && + URNCodeValue.isEmpty() && + EquivalentCodeSequence.isEmpty() && + ContextIdentifier.isEmpty() && + ContextUID.isEmpty() && + MappingResource.isEmpty() && + MappingResourceUID.isEmpty() && + MappingResourceName.isEmpty() && + ContextGroupVersion.isEmpty() && + ContextGroupExtensionFlag.isEmpty() && + ContextGroupLocalVersion.isEmpty() && + ContextGroupExtensionCreatorUID.isEmpty(); +} + + +OFBool DRTStrainSourceRegistryCodeSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "StrainSourceRegistryCodeSequence"); + EquivalentCodeSequence.read(item, "1-n", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextUID, "1", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "StrainSourceRegistryCodeSequence"); + getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "StrainSourceRegistryCodeSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "StrainSourceRegistryCodeSequence"); + if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "StrainSourceRegistryCodeSequence"); + addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "StrainSourceRegistryCodeSequence"); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodeMeaning, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodeValue, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodingSchemeDesignator, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(CodingSchemeVersion, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupExtensionFlag, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupLocalVersion, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextGroupVersion, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextIdentifier, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ContextUID, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(LongCodeValue, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResource, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceName, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(MappingResourceUID, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(URNCodeValue, value, pos); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodeMeaning.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodeValue.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodingSchemeDesignator.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = CodingSchemeVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionCreatorUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupExtensionFlag.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupLocalVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextGroupVersion.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextIdentifier.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ContextUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LongCodeValue.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceName.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MappingResourceUID.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal; + if (result.good()) + result = URNCodeValue.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTStrainSourceRegistryCodeSequence::DRTStrainSourceRegistryCodeSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTStrainSourceRegistryCodeSequence::DRTStrainSourceRegistryCodeSequence(const DRTStrainSourceRegistryCodeSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTStrainSourceRegistryCodeSequence &DRTStrainSourceRegistryCodeSequence::operator=(const DRTStrainSourceRegistryCodeSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTStrainSourceRegistryCodeSequence::~DRTStrainSourceRegistryCodeSequence() +{ + clear(); +} + + +void DRTStrainSourceRegistryCodeSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTStrainSourceRegistryCodeSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTStrainSourceRegistryCodeSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTStrainSourceRegistryCodeSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_StrainSourceRegistryCodeSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_StrainSourceRegistryCodeSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTStrainSourceRegistryCodeSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainSourceRegistryCodeSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtssrs.cc b/dcmrt/libsrc/drtssrs.cc index bf467a71..94220ccf 100644 --- a/dcmrt/libsrc/drtssrs.cc +++ b/dcmrt/libsrc/drtssrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTStructureSetROISequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtsss.cc b/dcmrt/libsrc/drtsss.cc new file mode 100644 index 00000000..c7ca8ede --- /dev/null +++ b/dcmrt/libsrc/drtsss.cc @@ -0,0 +1,580 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTStrainStockSequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtsss.h" + + +// --- item class --- + +DRTStrainStockSequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + StrainSource(DCM_StrainSource), + StrainSourceRegistryCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/), + StrainStockNumber(DCM_StrainStockNumber) +{ +} + + +DRTStrainStockSequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + StrainSource(copy.StrainSource), + StrainSourceRegistryCodeSequence(copy.StrainSourceRegistryCodeSequence), + StrainStockNumber(copy.StrainStockNumber) +{ +} + + +DRTStrainStockSequence::Item::~Item() +{ +} + + +DRTStrainStockSequence::Item &DRTStrainStockSequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + StrainSource = copy.StrainSource; + StrainSourceRegistryCodeSequence = copy.StrainSourceRegistryCodeSequence; + StrainStockNumber = copy.StrainStockNumber; + } + return *this; +} + + +void DRTStrainStockSequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + StrainStockNumber.clear(); + StrainSource.clear(); + StrainSourceRegistryCodeSequence.clear(); + } +} + + +OFBool DRTStrainStockSequence::Item::isEmpty() +{ + return StrainStockNumber.isEmpty() && + StrainSource.isEmpty() && + StrainSourceRegistryCodeSequence.isEmpty(); +} + + +OFBool DRTStrainStockSequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTStrainStockSequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, StrainStockNumber, "1", "1", "StrainStockSequence"); + getAndCheckElementFromDataset(item, StrainSource, "1", "1", "StrainStockSequence"); + StrainSourceRegistryCodeSequence.read(item, "1-n", "1", "StrainStockSequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainStockSequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmLongString(StrainStockNumber), "1", "1", "StrainStockSequence"); + addElementToDataset(result, item, new DcmLongString(StrainSource), "1", "1", "StrainStockSequence"); + if (result.good()) result = StrainSourceRegistryCodeSequence.write(item, "1-n", "1", "StrainStockSequence"); + } + return result; +} + + +OFCondition DRTStrainStockSequence::Item::getStrainSource(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(StrainSource, value, pos); +} + + +OFCondition DRTStrainStockSequence::Item::getStrainStockNumber(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(StrainStockNumber, value, pos); +} + + +OFCondition DRTStrainStockSequence::Item::setStrainSource(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainSource.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTStrainStockSequence::Item::setStrainStockNumber(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainStockNumber.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTStrainStockSequence::DRTStrainStockSequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTStrainStockSequence::DRTStrainStockSequence(const DRTStrainStockSequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTStrainStockSequence &DRTStrainStockSequence::operator=(const DRTStrainStockSequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTStrainStockSequence::~DRTStrainStockSequence() +{ + clear(); +} + + +void DRTStrainStockSequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTStrainStockSequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTStrainStockSequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTStrainStockSequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTStrainStockSequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainStockSequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTStrainStockSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainStockSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainStockSequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTStrainStockSequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTStrainStockSequence::Item &DRTStrainStockSequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTStrainStockSequence::Item &DRTStrainStockSequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTStrainStockSequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTStrainStockSequence::Item &DRTStrainStockSequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTStrainStockSequence::Item &DRTStrainStockSequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTStrainStockSequence::Item &DRTStrainStockSequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTStrainStockSequence::Item &DRTStrainStockSequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTStrainStockSequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTStrainStockSequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTStrainStockSequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTStrainStockSequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_StrainStockSequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_StrainStockSequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTStrainStockSequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainStockSequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtstrct.cc b/dcmrt/libsrc/drtstrct.cc index 29308f05..f0ad51c5 100644 --- a/dcmrt/libsrc/drtstrct.cc +++ b/dcmrt/libsrc/drtstrct.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTStructureSetIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,6 +23,9 @@ DRTStructureSetIOD::DRTStructureSetIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTStructureSetIOD::DRTStructureSetIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTStructureSetIOD::DRTStructureSetIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTStructureSetIOD::DRTStructureSetIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -119,6 +139,7 @@ DRTStructureSetIOD::DRTStructureSetIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -140,6 +161,12 @@ DRTStructureSetIOD::DRTStructureSetIOD() ReviewDate(DCM_ReviewDate), ReviewTime(DCM_ReviewTime), ReviewerName(DCM_ReviewerName), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), SOPClassUID(DCM_SOPClassUID), SOPInstanceUID(DCM_SOPInstanceUID), SpecificCharacterSet(DCM_SpecificCharacterSet), @@ -150,6 +177,8 @@ DRTStructureSetIOD::DRTStructureSetIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -180,6 +209,9 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -195,12 +227,19 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -234,7 +273,16 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -254,6 +302,7 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -276,6 +325,7 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -297,6 +347,12 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) ReviewDate(copy.ReviewDate), ReviewTime(copy.ReviewTime), ReviewerName(copy.ReviewerName), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), SOPClassUID(copy.SOPClassUID), SOPInstanceUID(copy.SOPInstanceUID), SpecificCharacterSet(copy.SpecificCharacterSet), @@ -307,6 +363,8 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD ©) RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -343,6 +401,9 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -358,12 +419,19 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -397,7 +465,16 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -417,6 +494,7 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -439,6 +517,7 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -460,6 +539,12 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © ReviewDate = copy.ReviewDate; ReviewTime = copy.ReviewTime; ReviewerName = copy.ReviewerName; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; SOPClassUID = copy.SOPClassUID; SOPInstanceUID = copy.SOPInstanceUID; SpecificCharacterSet = copy.SpecificCharacterSet; @@ -470,6 +555,8 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD © RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -501,6 +588,9 @@ void DRTStructureSetIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -516,12 +606,19 @@ void DRTStructureSetIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -555,7 +652,16 @@ void DRTStructureSetIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -575,6 +681,7 @@ void DRTStructureSetIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -597,6 +704,7 @@ void DRTStructureSetIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -618,6 +726,12 @@ void DRTStructureSetIOD::clear() ReviewDate.clear(); ReviewTime.clear(); ReviewerName.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SOPClassUID.clear(); SOPInstanceUID.clear(); SpecificCharacterSet.clear(); @@ -628,6 +742,8 @@ void DRTStructureSetIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -703,6 +819,7 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -742,6 +859,14 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- SOPCommonModule (M) --- getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule"); @@ -753,6 +878,8 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -789,6 +916,9 @@ OFCondition DRTStructureSetIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -804,12 +934,19 @@ OFCondition DRTStructureSetIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -865,7 +1002,16 @@ OFCondition DRTStructureSetIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -902,6 +1048,7 @@ OFCondition DRTStructureSetIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -940,6 +1087,9 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -955,12 +1105,19 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -1005,7 +1162,16 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -1033,6 +1199,7 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1062,6 +1229,7 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1100,6 +1268,17 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule"); } + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- SOPCommonModule (M) --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule"); @@ -1111,6 +1290,8 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1171,7 +1352,16 @@ OFBool DRTStructureSetIOD::isPatientStudyModulePresent(const OFBool /*complete*/ !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1231,6 +1421,18 @@ OFBool DRTStructureSetIOD::isApprovalModulePresent(const OFBool complete) } +OFBool DRTStructureSetIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTStructureSetIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -1263,6 +1465,12 @@ OFCondition DRTStructureSetIOD::getAdmittingDiagnosesDescription(OFString &value } +OFCondition DRTStructureSetIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTStructureSetIOD::getApprovalStatus(OFString &value, const signed long pos) const { return getStringValueFromElement(ApprovalStatus, value, pos); @@ -1389,6 +1597,12 @@ OFCondition DRTStructureSetIOD::getDeidentificationMethod(OFString &value, const } +OFCondition DRTStructureSetIOD::getDerivationDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(DerivationDescription, value, pos); +} + + OFCondition DRTStructureSetIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -1473,6 +1687,12 @@ OFCondition DRTStructureSetIOD::getIssuerOfPatientID(OFString &value, const sign } +OFCondition DRTStructureSetIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTStructureSetIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -1491,6 +1711,36 @@ OFCondition DRTStructureSetIOD::getManufacturerModelName(OFString &value, const } +OFCondition DRTStructureSetIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTStructureSetIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTStructureSetIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTStructureSetIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTStructureSetIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTStructureSetIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -1539,18 +1789,42 @@ OFCondition DRTStructureSetIOD::getPatientAge(OFString &value, const signed long } +OFCondition DRTStructureSetIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTStructureSetIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTStructureSetIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTStructureSetIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTStructureSetIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTStructureSetIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTStructureSetIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -1563,6 +1837,12 @@ OFCondition DRTStructureSetIOD::getPatientComments(OFString &value, const signed } +OFCondition DRTStructureSetIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTStructureSetIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -1611,6 +1891,12 @@ OFCondition DRTStructureSetIOD::getPatientSpeciesDescription(OFString &value, co } +OFCondition DRTStructureSetIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTStructureSetIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -1677,6 +1963,12 @@ OFCondition DRTStructureSetIOD::getPositionReferenceIndicator(OFString &value, c } +OFCondition DRTStructureSetIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTStructureSetIOD::getQualityControlSubject(OFString &value, const signed long pos) const { return getStringValueFromElement(QualityControlSubject, value, pos); @@ -1815,6 +2107,12 @@ OFCondition DRTStructureSetIOD::getServiceEpisodeID(OFString &value, const signe } +OFCondition DRTStructureSetIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTStructureSetIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -1845,6 +2143,24 @@ OFCondition DRTStructureSetIOD::getStationName(OFString &value, const signed lon } +OFCondition DRTStructureSetIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTStructureSetIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTStructureSetIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTStructureSetIOD::getStructureSetDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StructureSetDate, value, pos); @@ -1953,6 +2269,15 @@ OFCondition DRTStructureSetIOD::setAdmittingDiagnosesDescription(const OFString } +OFCondition DRTStructureSetIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setApprovalStatus(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2142,6 +2467,15 @@ OFCondition DRTStructureSetIOD::setDeidentificationMethod(const OFString &value, } +OFCondition DRTStructureSetIOD::setDerivationDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = DerivationDescription.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2259,6 +2593,15 @@ OFCondition DRTStructureSetIOD::setIssuerOfPatientID(const OFString &value, cons } +OFCondition DRTStructureSetIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2286,6 +2629,33 @@ OFCondition DRTStructureSetIOD::setManufacturerModelName(const OFString &value, } +OFCondition DRTStructureSetIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTStructureSetIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTStructureSetIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2358,6 +2728,15 @@ OFCondition DRTStructureSetIOD::setPatientAge(const OFString &value, const OFBoo } +OFCondition DRTStructureSetIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -2367,6 +2746,15 @@ OFCondition DRTStructureSetIOD::setPatientBirthDate(const OFString &value, const } +OFCondition DRTStructureSetIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -2376,6 +2764,15 @@ OFCondition DRTStructureSetIOD::setPatientBirthTime(const OFString &value, const } +OFCondition DRTStructureSetIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2394,6 +2791,15 @@ OFCondition DRTStructureSetIOD::setPatientComments(const OFString &value, const } +OFCondition DRTStructureSetIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2457,6 +2863,15 @@ OFCondition DRTStructureSetIOD::setPatientSpeciesDescription(const OFString &val } +OFCondition DRTStructureSetIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -2544,6 +2959,12 @@ OFCondition DRTStructureSetIOD::setPositionReferenceIndicator(const OFString &va } +OFCondition DRTStructureSetIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTStructureSetIOD::setQualityControlSubject(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2742,6 +3163,15 @@ OFCondition DRTStructureSetIOD::setServiceEpisodeID(const OFString &value, const } +OFCondition DRTStructureSetIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -2778,6 +3208,33 @@ OFCondition DRTStructureSetIOD::setStationName(const OFString &value, const OFBo } +OFCondition DRTStructureSetIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTStructureSetIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTStructureSetIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTStructureSetIOD::setStructureSetDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drttms0.cc b/dcmrt/libsrc/drttms0.cc index 60acc416..9032c7e2 100644 --- a/dcmrt/libsrc/drttms0.cc +++ b/dcmrt/libsrc/drttms0.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drttms9.cc b/dcmrt/libsrc/drttms9.cc index 8d9d2f57..802cb99a 100644 --- a/dcmrt/libsrc/drttms9.cc +++ b/dcmrt/libsrc/drttms9.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drttreat.cc b/dcmrt/libsrc/drttreat.cc index 9748d148..e284267e 100644 --- a/dcmrt/libsrc/drttreat.cc +++ b/dcmrt/libsrc/drttreat.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentSummaryRecordIOD * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -23,6 +23,9 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() IssuerOfPatientID(DCM_IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(), PatientBirthDate(DCM_PatientBirthDate), + PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(DCM_PatientAlternativeCalendar), PatientSex(DCM_PatientSex), ReferencedPatientPhotoSequence(), QualityControlSubject(DCM_QualityControlSubject), @@ -38,12 +41,19 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() PatientBreedDescription(DCM_PatientBreedDescription), PatientBreedCodeSequence(), BreedRegistrationSequence(), + StrainDescription(DCM_StrainDescription), + StrainNomenclature(DCM_StrainNomenclature), + StrainCodeSequence(), + StrainAdditionalInformation(DCM_StrainAdditionalInformation), + StrainStockSequence(), ResponsiblePerson(DCM_ResponsiblePerson), ResponsiblePersonRole(DCM_ResponsiblePersonRole), ResponsibleOrganization(DCM_ResponsibleOrganization), PatientIdentityRemoved(DCM_PatientIdentityRemoved), DeidentificationMethod(DCM_DeidentificationMethod), DeidentificationMethodCodeSequence(), + SourcePatientGroupIdentificationSequence(), + GroupOfPatientsIdentificationSequence(), ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName), ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID), ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName), @@ -77,7 +87,16 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() PatientAge(DCM_PatientAge), PatientSize(DCM_PatientSize), PatientWeight(DCM_PatientWeight), + PatientBodyMassIndex(DCM_PatientBodyMassIndex), + MeasuredAPDimension(DCM_MeasuredAPDimension), + MeasuredLateralDimension(DCM_MeasuredLateralDimension), PatientSizeCodeSequence(), + MedicalAlerts(DCM_MedicalAlerts), + Allergies(DCM_Allergies), + SmokingStatus(DCM_SmokingStatus), + PregnancyStatus(DCM_PregnancyStatus), + LastMenstrualDate(DCM_LastMenstrualDate), + PatientState(DCM_PatientState), Occupation(DCM_Occupation), AdditionalPatientHistory(DCM_AdditionalPatientHistory), AdmissionID(DCM_AdmissionID), @@ -97,6 +116,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() SeriesDescription(DCM_SeriesDescription), SeriesDescriptionCodeSequence(), OperatorsName(DCM_OperatorsName), + OperatorIdentificationSequence(), ReferencedPerformedProcedureStepSequence(), RequestAttributesSequence(), PerformedProcedureStepID(DCM_PerformedProcedureStepID), @@ -119,6 +139,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() DeviceSerialNumber(DCM_DeviceSerialNumber), SoftwareVersions(DCM_SoftwareVersions), GantryID(DCM_GantryID), + UDISequence(), SpatialResolution(DCM_SpatialResolution), DateOfLastCalibration(DCM_DateOfLastCalibration), TimeOfLastCalibration(DCM_TimeOfLastCalibration), @@ -135,6 +156,12 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() FractionGroupSummarySequence(), TreatmentSummaryMeasuredDoseReferenceSequence(), TreatmentSummaryCalculatedDoseReferenceSequence(), + ReferencedImageSequence(), + ReferencedInstanceSequence(), + DerivationDescription(DCM_DerivationDescription), + DerivationCodeSequence(), + SourceImageSequence(), + SourceInstanceSequence(), SOPClassUID(DCM_SOPClassUID), SOPInstanceUID(DCM_SOPInstanceUID), SpecificCharacterSet(DCM_SpecificCharacterSet), @@ -145,6 +172,8 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD() RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(), + ContextGroupIdentificationSequence(), + MappingResourceIdentificationSequence(), TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC), ContributingEquipmentSequence(), SOPInstanceStatus(DCM_SOPInstanceStatus), @@ -175,6 +204,9 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum IssuerOfPatientID(copy.IssuerOfPatientID), IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence), PatientBirthDate(copy.PatientBirthDate), + PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar), + PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar), + PatientAlternativeCalendar(copy.PatientAlternativeCalendar), PatientSex(copy.PatientSex), ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence), QualityControlSubject(copy.QualityControlSubject), @@ -190,12 +222,19 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum PatientBreedDescription(copy.PatientBreedDescription), PatientBreedCodeSequence(copy.PatientBreedCodeSequence), BreedRegistrationSequence(copy.BreedRegistrationSequence), + StrainDescription(copy.StrainDescription), + StrainNomenclature(copy.StrainNomenclature), + StrainCodeSequence(copy.StrainCodeSequence), + StrainAdditionalInformation(copy.StrainAdditionalInformation), + StrainStockSequence(copy.StrainStockSequence), ResponsiblePerson(copy.ResponsiblePerson), ResponsiblePersonRole(copy.ResponsiblePersonRole), ResponsibleOrganization(copy.ResponsibleOrganization), PatientIdentityRemoved(copy.PatientIdentityRemoved), DeidentificationMethod(copy.DeidentificationMethod), DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence), + SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence), + GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence), ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName), ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID), ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName), @@ -229,7 +268,16 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum PatientAge(copy.PatientAge), PatientSize(copy.PatientSize), PatientWeight(copy.PatientWeight), + PatientBodyMassIndex(copy.PatientBodyMassIndex), + MeasuredAPDimension(copy.MeasuredAPDimension), + MeasuredLateralDimension(copy.MeasuredLateralDimension), PatientSizeCodeSequence(copy.PatientSizeCodeSequence), + MedicalAlerts(copy.MedicalAlerts), + Allergies(copy.Allergies), + SmokingStatus(copy.SmokingStatus), + PregnancyStatus(copy.PregnancyStatus), + LastMenstrualDate(copy.LastMenstrualDate), + PatientState(copy.PatientState), Occupation(copy.Occupation), AdditionalPatientHistory(copy.AdditionalPatientHistory), AdmissionID(copy.AdmissionID), @@ -249,6 +297,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum SeriesDescription(copy.SeriesDescription), SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence), OperatorsName(copy.OperatorsName), + OperatorIdentificationSequence(copy.OperatorIdentificationSequence), ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence), RequestAttributesSequence(copy.RequestAttributesSequence), PerformedProcedureStepID(copy.PerformedProcedureStepID), @@ -271,6 +320,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum DeviceSerialNumber(copy.DeviceSerialNumber), SoftwareVersions(copy.SoftwareVersions), GantryID(copy.GantryID), + UDISequence(copy.UDISequence), SpatialResolution(copy.SpatialResolution), DateOfLastCalibration(copy.DateOfLastCalibration), TimeOfLastCalibration(copy.TimeOfLastCalibration), @@ -287,6 +337,12 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum FractionGroupSummarySequence(copy.FractionGroupSummarySequence), TreatmentSummaryMeasuredDoseReferenceSequence(copy.TreatmentSummaryMeasuredDoseReferenceSequence), TreatmentSummaryCalculatedDoseReferenceSequence(copy.TreatmentSummaryCalculatedDoseReferenceSequence), + ReferencedImageSequence(copy.ReferencedImageSequence), + ReferencedInstanceSequence(copy.ReferencedInstanceSequence), + DerivationDescription(copy.DerivationDescription), + DerivationCodeSequence(copy.DerivationCodeSequence), + SourceImageSequence(copy.SourceImageSequence), + SourceInstanceSequence(copy.SourceInstanceSequence), SOPClassUID(copy.SOPClassUID), SOPInstanceUID(copy.SOPInstanceUID), SpecificCharacterSet(copy.SpecificCharacterSet), @@ -297,6 +353,8 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID), OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID), CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence), + ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence), + MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence), TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC), ContributingEquipmentSequence(copy.ContributingEquipmentSequence), SOPInstanceStatus(copy.SOPInstanceStatus), @@ -333,6 +391,9 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT IssuerOfPatientID = copy.IssuerOfPatientID; IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence; PatientBirthDate = copy.PatientBirthDate; + PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar; + PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar; + PatientAlternativeCalendar = copy.PatientAlternativeCalendar; PatientSex = copy.PatientSex; ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence; QualityControlSubject = copy.QualityControlSubject; @@ -348,12 +409,19 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT PatientBreedDescription = copy.PatientBreedDescription; PatientBreedCodeSequence = copy.PatientBreedCodeSequence; BreedRegistrationSequence = copy.BreedRegistrationSequence; + StrainDescription = copy.StrainDescription; + StrainNomenclature = copy.StrainNomenclature; + StrainCodeSequence = copy.StrainCodeSequence; + StrainAdditionalInformation = copy.StrainAdditionalInformation; + StrainStockSequence = copy.StrainStockSequence; ResponsiblePerson = copy.ResponsiblePerson; ResponsiblePersonRole = copy.ResponsiblePersonRole; ResponsibleOrganization = copy.ResponsibleOrganization; PatientIdentityRemoved = copy.PatientIdentityRemoved; DeidentificationMethod = copy.DeidentificationMethod; DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence; + SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence; + GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence; ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName; ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID; ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName; @@ -387,7 +455,16 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT PatientAge = copy.PatientAge; PatientSize = copy.PatientSize; PatientWeight = copy.PatientWeight; + PatientBodyMassIndex = copy.PatientBodyMassIndex; + MeasuredAPDimension = copy.MeasuredAPDimension; + MeasuredLateralDimension = copy.MeasuredLateralDimension; PatientSizeCodeSequence = copy.PatientSizeCodeSequence; + MedicalAlerts = copy.MedicalAlerts; + Allergies = copy.Allergies; + SmokingStatus = copy.SmokingStatus; + PregnancyStatus = copy.PregnancyStatus; + LastMenstrualDate = copy.LastMenstrualDate; + PatientState = copy.PatientState; Occupation = copy.Occupation; AdditionalPatientHistory = copy.AdditionalPatientHistory; AdmissionID = copy.AdmissionID; @@ -407,6 +484,7 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT SeriesDescription = copy.SeriesDescription; SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence; OperatorsName = copy.OperatorsName; + OperatorIdentificationSequence = copy.OperatorIdentificationSequence; ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence; RequestAttributesSequence = copy.RequestAttributesSequence; PerformedProcedureStepID = copy.PerformedProcedureStepID; @@ -429,6 +507,7 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT DeviceSerialNumber = copy.DeviceSerialNumber; SoftwareVersions = copy.SoftwareVersions; GantryID = copy.GantryID; + UDISequence = copy.UDISequence; SpatialResolution = copy.SpatialResolution; DateOfLastCalibration = copy.DateOfLastCalibration; TimeOfLastCalibration = copy.TimeOfLastCalibration; @@ -445,6 +524,12 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT FractionGroupSummarySequence = copy.FractionGroupSummarySequence; TreatmentSummaryMeasuredDoseReferenceSequence = copy.TreatmentSummaryMeasuredDoseReferenceSequence; TreatmentSummaryCalculatedDoseReferenceSequence = copy.TreatmentSummaryCalculatedDoseReferenceSequence; + ReferencedImageSequence = copy.ReferencedImageSequence; + ReferencedInstanceSequence = copy.ReferencedInstanceSequence; + DerivationDescription = copy.DerivationDescription; + DerivationCodeSequence = copy.DerivationCodeSequence; + SourceImageSequence = copy.SourceImageSequence; + SourceInstanceSequence = copy.SourceInstanceSequence; SOPClassUID = copy.SOPClassUID; SOPInstanceUID = copy.SOPInstanceUID; SpecificCharacterSet = copy.SpecificCharacterSet; @@ -455,6 +540,8 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID; OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID; CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence; + ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence; + MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence; TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC; ContributingEquipmentSequence = copy.ContributingEquipmentSequence; SOPInstanceStatus = copy.SOPInstanceStatus; @@ -486,6 +573,9 @@ void DRTTreatmentSummaryRecordIOD::clear() IssuerOfPatientID.clear(); IssuerOfPatientIDQualifiersSequence.clear(); PatientBirthDate.clear(); + PatientBirthDateInAlternativeCalendar.clear(); + PatientDeathDateInAlternativeCalendar.clear(); + PatientAlternativeCalendar.clear(); PatientSex.clear(); ReferencedPatientPhotoSequence.clear(); QualityControlSubject.clear(); @@ -501,12 +591,19 @@ void DRTTreatmentSummaryRecordIOD::clear() PatientBreedDescription.clear(); PatientBreedCodeSequence.clear(); BreedRegistrationSequence.clear(); + StrainDescription.clear(); + StrainNomenclature.clear(); + StrainCodeSequence.clear(); + StrainAdditionalInformation.clear(); + StrainStockSequence.clear(); ResponsiblePerson.clear(); ResponsiblePersonRole.clear(); ResponsibleOrganization.clear(); PatientIdentityRemoved.clear(); DeidentificationMethod.clear(); DeidentificationMethodCodeSequence.clear(); + SourcePatientGroupIdentificationSequence.clear(); + GroupOfPatientsIdentificationSequence.clear(); ClinicalTrialSponsorName.clear(); ClinicalTrialProtocolID.clear(); ClinicalTrialProtocolName.clear(); @@ -540,7 +637,16 @@ void DRTTreatmentSummaryRecordIOD::clear() PatientAge.clear(); PatientSize.clear(); PatientWeight.clear(); + PatientBodyMassIndex.clear(); + MeasuredAPDimension.clear(); + MeasuredLateralDimension.clear(); PatientSizeCodeSequence.clear(); + MedicalAlerts.clear(); + Allergies.clear(); + SmokingStatus.clear(); + PregnancyStatus.clear(); + LastMenstrualDate.clear(); + PatientState.clear(); Occupation.clear(); AdditionalPatientHistory.clear(); AdmissionID.clear(); @@ -560,6 +666,7 @@ void DRTTreatmentSummaryRecordIOD::clear() SeriesDescription.clear(); SeriesDescriptionCodeSequence.clear(); OperatorsName.clear(); + OperatorIdentificationSequence.clear(); ReferencedPerformedProcedureStepSequence.clear(); RequestAttributesSequence.clear(); PerformedProcedureStepID.clear(); @@ -582,6 +689,7 @@ void DRTTreatmentSummaryRecordIOD::clear() DeviceSerialNumber.clear(); SoftwareVersions.clear(); GantryID.clear(); + UDISequence.clear(); SpatialResolution.clear(); DateOfLastCalibration.clear(); TimeOfLastCalibration.clear(); @@ -598,6 +706,12 @@ void DRTTreatmentSummaryRecordIOD::clear() FractionGroupSummarySequence.clear(); TreatmentSummaryMeasuredDoseReferenceSequence.clear(); TreatmentSummaryCalculatedDoseReferenceSequence.clear(); + ReferencedImageSequence.clear(); + ReferencedInstanceSequence.clear(); + DerivationDescription.clear(); + DerivationCodeSequence.clear(); + SourceImageSequence.clear(); + SourceInstanceSequence.clear(); SOPClassUID.clear(); SOPInstanceUID.clear(); SpecificCharacterSet.clear(); @@ -608,6 +722,8 @@ void DRTTreatmentSummaryRecordIOD::clear() RelatedGeneralSOPClassUID.clear(); OriginalSpecializedSOPClassUID.clear(); CodingSchemeIdentificationSequence.clear(); + ContextGroupIdentificationSequence.clear(); + MappingResourceIdentificationSequence.clear(); TimezoneOffsetFromUTC.clear(); ContributingEquipmentSequence.clear(); SOPInstanceStatus.clear(); @@ -683,6 +799,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule"); + UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule"); @@ -704,6 +821,14 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset) TreatmentSummaryMeasuredDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule"); TreatmentSummaryCalculatedDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule"); + // --- GeneralReferenceModule (U) --- + ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule"); + DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule"); + // --- SOPCommonModule (M) --- getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule"); @@ -715,6 +840,8 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset) getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule"); CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); + MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule"); getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule"); ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule"); // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule"); @@ -751,6 +878,9 @@ OFCondition DRTTreatmentSummaryRecordIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule"); IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule"); ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule"); @@ -766,12 +896,19 @@ OFCondition DRTTreatmentSummaryRecordIOD::readPatientData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule"); PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule"); BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule"); + StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule"); + getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule"); + StrainStockSequence.read(dataset, "1-n", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule"); getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule"); getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule"); getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule"); DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule"); + SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); + GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (dataset.tagExists(DCM_ClinicalTrialSponsorName) || @@ -827,7 +964,16 @@ OFCondition DRTTreatmentSummaryRecordIOD::readStudyData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule"); PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule"); + getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule"); getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule"); @@ -864,6 +1010,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::readSeriesData(DcmItem &dataset) getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule"); SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule"); + OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule"); ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule"); RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule"); getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule"); @@ -902,6 +1049,9 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule"); if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule"); if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule"); @@ -917,12 +1067,19 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule"); if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule"); if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule"); + addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule"); + if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule"); + addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule"); + if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule"); addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule"); addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule"); addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule"); if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule"); + if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); + if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule"); // --- ClinicalTrialSubjectModule (U) --- if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/)) @@ -967,7 +1124,16 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule"); if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule"); + addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule"); addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule"); @@ -995,6 +1161,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule"); if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule"); + if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule"); addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule"); @@ -1024,6 +1191,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule"); + if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule"); @@ -1045,6 +1213,17 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) if (result.good()) result = TreatmentSummaryMeasuredDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule"); if (result.good()) result = TreatmentSummaryCalculatedDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule"); + // --- GeneralReferenceModule (U) --- + if (isGeneralReferenceModulePresent(OFFalse /*complete*/)) + { + if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule"); + if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule"); + } + // --- SOPCommonModule (M) --- addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule"); @@ -1056,6 +1235,8 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset) addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule"); if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); + if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule"); if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule"); // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule"); @@ -1116,7 +1297,16 @@ OFBool DRTTreatmentSummaryRecordIOD::isPatientStudyModulePresent(const OFBool /* !PatientAge.isEmpty() || !PatientSize.isEmpty() || !PatientWeight.isEmpty() || + !PatientBodyMassIndex.isEmpty() || + !MeasuredAPDimension.isEmpty() || + !MeasuredLateralDimension.isEmpty() || !PatientSizeCodeSequence.isEmpty() || + !MedicalAlerts.isEmpty() || + !Allergies.isEmpty() || + !SmokingStatus.isEmpty() || + !PregnancyStatus.isEmpty() || + !LastMenstrualDate.isEmpty() || + !PatientState.isEmpty() || !Occupation.isEmpty() || !AdditionalPatientHistory.isEmpty() || !AdmissionID.isEmpty() || @@ -1146,6 +1336,18 @@ OFBool DRTTreatmentSummaryRecordIOD::isClinicalTrialSeriesModulePresent(const OF } +OFBool DRTTreatmentSummaryRecordIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/) +{ + /* check whether at least one attribute is present */ + return !ReferencedImageSequence.isEmpty() || + !ReferencedInstanceSequence.isEmpty() || + !DerivationDescription.isEmpty() || + !DerivationCodeSequence.isEmpty() || + !SourceImageSequence.isEmpty() || + !SourceInstanceSequence.isEmpty(); +} + + OFBool DRTTreatmentSummaryRecordIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/) { /* check whether at least one attribute is present */ @@ -1178,6 +1380,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getAdmittingDiagnosesDescription(OFStr } +OFCondition DRTTreatmentSummaryRecordIOD::getAllergies(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(Allergies, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos); @@ -1304,6 +1512,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getDeidentificationMethod(OFString &va } +OFCondition DRTTreatmentSummaryRecordIOD::getDerivationDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(DerivationDescription, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const { return getStringValueFromElement(DeviceSerialNumber, value, pos); @@ -1388,6 +1602,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getIssuerOfPatientID(OFString &value, } +OFCondition DRTTreatmentSummaryRecordIOD::getLastMenstrualDate(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(LastMenstrualDate, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const { return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos); @@ -1406,6 +1626,36 @@ OFCondition DRTTreatmentSummaryRecordIOD::getManufacturerModelName(OFString &val } +OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredAPDimension, value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MeasuredLateralDimension, value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getMedicalAlerts(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(MedicalAlerts, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getModality(OFString &value, const signed long pos) const { return getStringValueFromElement(Modality, value, pos); @@ -1460,18 +1710,42 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientAge(OFString &value, const s } +OFCondition DRTTreatmentSummaryRecordIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientAlternativeCalendar, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthDate(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthDate, value, pos); } +OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthTime(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBirthTime, value, pos); } +OFCondition DRTTreatmentSummaryRecordIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientBodyMassIndex, value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getPatientBreedDescription(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientBreedDescription, value, pos); @@ -1484,6 +1758,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientComments(OFString &value, co } +OFCondition DRTTreatmentSummaryRecordIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getPatientID(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientID, value, pos); @@ -1532,6 +1812,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientSpeciesDescription(OFString } +OFCondition DRTTreatmentSummaryRecordIOD::getPatientState(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(PatientState, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getPatientWeight(OFString &value, const signed long pos) const { return getStringValueFromElement(PatientWeight, value, pos); @@ -1592,6 +1878,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPixelPaddingValue(Uint16 &value, co } +OFCondition DRTTreatmentSummaryRecordIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const +{ + return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getQualityControlSubject(OFString &value, const signed long pos) const { return getStringValueFromElement(QualityControlSubject, value, pos); @@ -1712,6 +2004,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getServiceEpisodeID(OFString &value, c } +OFCondition DRTTreatmentSummaryRecordIOD::getSmokingStatus(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(SmokingStatus, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getSoftwareVersions(OFString &value, const signed long pos) const { return getStringValueFromElement(SoftwareVersions, value, pos); @@ -1742,6 +2040,24 @@ OFCondition DRTTreatmentSummaryRecordIOD::getStationName(OFString &value, const } +OFCondition DRTTreatmentSummaryRecordIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainAdditionalInformation, value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getStrainDescription(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainDescription, value, pos); +} + + +OFCondition DRTTreatmentSummaryRecordIOD::getStrainNomenclature(OFString &value, const signed long pos) const +{ + return getStringValueFromElement(StrainNomenclature, value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::getStudyDate(OFString &value, const signed long pos) const { return getStringValueFromElement(StudyDate, value, pos); @@ -1838,6 +2154,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setAdmittingDiagnosesDescription(const } +OFCondition DRTTreatmentSummaryRecordIOD::setAllergies(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = Allergies.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2027,6 +2352,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setDeidentificationMethod(const OFStri } +OFCondition DRTTreatmentSummaryRecordIOD::setDerivationDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = DerivationDescription.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setDeviceSerialNumber(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2144,6 +2478,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setIssuerOfPatientID(const OFString &v } +OFCondition DRTTreatmentSummaryRecordIOD::setLastMenstrualDate(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = LastMenstrualDate.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2171,6 +2514,33 @@ OFCondition DRTTreatmentSummaryRecordIOD::setManufacturerModelName(const OFStrin } +OFCondition DRTTreatmentSummaryRecordIOD::setMeasuredAPDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredAPDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTTreatmentSummaryRecordIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = MeasuredLateralDimension.putOFStringArray(value); + return result; +} + + +OFCondition DRTTreatmentSummaryRecordIOD::setMedicalAlerts(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; + if (result.good()) + result = MedicalAlerts.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setModality(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2252,6 +2622,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientAge(const OFString &value, c } +OFCondition DRTTreatmentSummaryRecordIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; @@ -2261,6 +2640,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDate(const OFString &va } +OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthTime(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal; @@ -2270,6 +2658,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthTime(const OFString &va } +OFCondition DRTTreatmentSummaryRecordIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientBodyMassIndex.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setPatientBreedDescription(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2288,6 +2685,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientComments(const OFString &val } +OFCondition DRTTreatmentSummaryRecordIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setPatientID(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; @@ -2351,6 +2757,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientSpeciesDescription(const OFS } +OFCondition DRTTreatmentSummaryRecordIOD::setPatientState(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = PatientState.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setPatientWeight(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal; @@ -2429,6 +2844,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPixelPaddingValue(const Uint16 valu } +OFCondition DRTTreatmentSummaryRecordIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos) +{ + return PregnancyStatus.putUint16(value, pos); +} + + OFCondition DRTTreatmentSummaryRecordIOD::setQualityControlSubject(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; @@ -2600,6 +3021,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setServiceEpisodeID(const OFString &va } +OFCondition DRTTreatmentSummaryRecordIOD::setSmokingStatus(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = SmokingStatus.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setSoftwareVersions(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal; @@ -2636,6 +3066,33 @@ OFCondition DRTTreatmentSummaryRecordIOD::setStationName(const OFString &value, } +OFCondition DRTTreatmentSummaryRecordIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = StrainAdditionalInformation.putOFStringArray(value); + return result; +} + + +OFCondition DRTTreatmentSummaryRecordIOD::setStrainDescription(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainDescription.putOFStringArray(value); + return result; +} + + +OFCondition DRTTreatmentSummaryRecordIOD::setStrainNomenclature(const OFString &value, const OFBool check) +{ + OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = StrainNomenclature.putOFStringArray(value); + return result; +} + + OFCondition DRTTreatmentSummaryRecordIOD::setStudyDate(const OFString &value, const OFBool check) { OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal; diff --git a/dcmrt/libsrc/drttscds.cc b/dcmrt/libsrc/drttscds.cc index e9b64a10..b30e8e31 100644 --- a/dcmrt/libsrc/drttscds.cc +++ b/dcmrt/libsrc/drttscds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentSummaryCalculatedDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drttsibs.cc b/dcmrt/libsrc/drttsibs.cc index a69c8927..de35e64e 100644 --- a/dcmrt/libsrc/drttsibs.cc +++ b/dcmrt/libsrc/drttsibs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentSessionIonBeamSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ @@ -27,13 +27,16 @@ DRTTreatmentSessionIonBeamSequence::Item::Item(const OFBool emptyDefaultItem) BeamName(DCM_BeamName), BeamType(DCM_BeamType), CurrentFractionNumber(DCM_CurrentFractionNumber), + DeliveredDepthDoseParametersSequence(emptyDefaultItem /*emptyDefaultSequence*/), DeliveredPrimaryMeterset(DCM_DeliveredPrimaryMeterset), DeliveredSecondaryMeterset(DCM_DeliveredSecondaryMeterset), DeliveredTreatmentTime(DCM_DeliveredTreatmentTime), + FixationEye(DCM_FixationEye), FixationLightAzimuthalAngle(DCM_FixationLightAzimuthalAngle), FixationLightPolarAngle(DCM_FixationLightPolarAngle), GeneralAccessorySequence(emptyDefaultItem /*emptyDefaultSequence*/), IonControlPointDeliverySequence(emptyDefaultItem /*emptyDefaultSequence*/), + ModulatedScanModeType(DCM_ModulatedScanModeType), NumberOfBlocks(DCM_NumberOfBlocks), NumberOfBoli(DCM_NumberOfBoli), NumberOfCompensators(DCM_NumberOfCompensators), @@ -83,13 +86,16 @@ DRTTreatmentSessionIonBeamSequence::Item::Item(const Item ©) BeamName(copy.BeamName), BeamType(copy.BeamType), CurrentFractionNumber(copy.CurrentFractionNumber), + DeliveredDepthDoseParametersSequence(copy.DeliveredDepthDoseParametersSequence), DeliveredPrimaryMeterset(copy.DeliveredPrimaryMeterset), DeliveredSecondaryMeterset(copy.DeliveredSecondaryMeterset), DeliveredTreatmentTime(copy.DeliveredTreatmentTime), + FixationEye(copy.FixationEye), FixationLightAzimuthalAngle(copy.FixationLightAzimuthalAngle), FixationLightPolarAngle(copy.FixationLightPolarAngle), GeneralAccessorySequence(copy.GeneralAccessorySequence), IonControlPointDeliverySequence(copy.IonControlPointDeliverySequence), + ModulatedScanModeType(copy.ModulatedScanModeType), NumberOfBlocks(copy.NumberOfBlocks), NumberOfBoli(copy.NumberOfBoli), NumberOfCompensators(copy.NumberOfCompensators), @@ -147,13 +153,16 @@ DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::It BeamName = copy.BeamName; BeamType = copy.BeamType; CurrentFractionNumber = copy.CurrentFractionNumber; + DeliveredDepthDoseParametersSequence = copy.DeliveredDepthDoseParametersSequence; DeliveredPrimaryMeterset = copy.DeliveredPrimaryMeterset; DeliveredSecondaryMeterset = copy.DeliveredSecondaryMeterset; DeliveredTreatmentTime = copy.DeliveredTreatmentTime; + FixationEye = copy.FixationEye; FixationLightAzimuthalAngle = copy.FixationLightAzimuthalAngle; FixationLightPolarAngle = copy.FixationLightPolarAngle; GeneralAccessorySequence = copy.GeneralAccessorySequence; IonControlPointDeliverySequence = copy.IonControlPointDeliverySequence; + ModulatedScanModeType = copy.ModulatedScanModeType; NumberOfBlocks = copy.NumberOfBlocks; NumberOfBoli = copy.NumberOfBoli; NumberOfCompensators = copy.NumberOfCompensators; @@ -210,6 +219,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear() RadiationAtomicNumber.clear(); RadiationChargeState.clear(); ScanMode.clear(); + ModulatedScanModeType.clear(); ReferencedToleranceTableNumber.clear(); BeamLimitingDeviceLeafPairsSequence.clear(); ReferencedPatientSetupNumber.clear(); @@ -238,6 +248,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear() PatientSupportAccessoryCode.clear(); FixationLightAzimuthalAngle.clear(); FixationLightPolarAngle.clear(); + FixationEye.clear(); CurrentFractionNumber.clear(); TreatmentDeliveryType.clear(); TreatmentTerminationStatus.clear(); @@ -249,6 +260,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear() DeliveredSecondaryMeterset.clear(); SpecifiedTreatmentTime.clear(); DeliveredTreatmentTime.clear(); + DeliveredDepthDoseParametersSequence.clear(); NumberOfControlPoints.clear(); IonControlPointDeliverySequence.clear(); } @@ -266,6 +278,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty() RadiationAtomicNumber.isEmpty() && RadiationChargeState.isEmpty() && ScanMode.isEmpty() && + ModulatedScanModeType.isEmpty() && ReferencedToleranceTableNumber.isEmpty() && BeamLimitingDeviceLeafPairsSequence.isEmpty() && ReferencedPatientSetupNumber.isEmpty() && @@ -294,6 +307,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty() PatientSupportAccessoryCode.isEmpty() && FixationLightAzimuthalAngle.isEmpty() && FixationLightPolarAngle.isEmpty() && + FixationEye.isEmpty() && CurrentFractionNumber.isEmpty() && TreatmentDeliveryType.isEmpty() && TreatmentTerminationStatus.isEmpty() && @@ -305,6 +319,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty() DeliveredSecondaryMeterset.isEmpty() && SpecifiedTreatmentTime.isEmpty() && DeliveredTreatmentTime.isEmpty() && + DeliveredDepthDoseParametersSequence.isEmpty() && NumberOfControlPoints.isEmpty() && IonControlPointDeliverySequence.isEmpty(); } @@ -332,6 +347,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, RadiationAtomicNumber, "1", "1C", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, RadiationChargeState, "1", "1C", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, ScanMode, "1", "1", "TreatmentSessionIonBeamSequence"); + getAndCheckElementFromDataset(item, ModulatedScanModeType, "1", "1C", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, ReferencedToleranceTableNumber, "1", "3", "TreatmentSessionIonBeamSequence"); BeamLimitingDeviceLeafPairsSequence.read(item, "1-n", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, ReferencedPatientSetupNumber, "1", "3", "TreatmentSessionIonBeamSequence"); @@ -360,6 +376,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, PatientSupportAccessoryCode, "1", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, FixationLightAzimuthalAngle, "1", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, FixationLightPolarAngle, "1", "3", "TreatmentSessionIonBeamSequence"); + getAndCheckElementFromDataset(item, FixationEye, "1", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, CurrentFractionNumber, "1", "2", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, TreatmentDeliveryType, "1", "2", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, TreatmentTerminationStatus, "1", "1", "TreatmentSessionIonBeamSequence"); @@ -371,6 +388,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item) getAndCheckElementFromDataset(item, DeliveredSecondaryMeterset, "1", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, SpecifiedTreatmentTime, "1", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, DeliveredTreatmentTime, "1", "3", "TreatmentSessionIonBeamSequence"); + DeliveredDepthDoseParametersSequence.read(item, "1-n", "3", "TreatmentSessionIonBeamSequence"); getAndCheckElementFromDataset(item, NumberOfControlPoints, "1", "1", "TreatmentSessionIonBeamSequence"); IonControlPointDeliverySequence.read(item, "1-n", "1", "TreatmentSessionIonBeamSequence"); result = EC_Normal; @@ -394,6 +412,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmIntegerString(RadiationAtomicNumber), "1", "1C", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmSignedShort(RadiationChargeState), "1", "1C", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmCodeString(ScanMode), "1", "1", "TreatmentSessionIonBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(ModulatedScanModeType), "1", "1C", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(ReferencedToleranceTableNumber), "1", "3", "TreatmentSessionIonBeamSequence"); if (result.good()) result = BeamLimitingDeviceLeafPairsSequence.write(item, "1-n", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(ReferencedPatientSetupNumber), "1", "3", "TreatmentSessionIonBeamSequence"); @@ -422,6 +441,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmLongString(PatientSupportAccessoryCode), "1", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightAzimuthalAngle), "1", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightPolarAngle), "1", "3", "TreatmentSessionIonBeamSequence"); + addElementToDataset(result, item, new DcmCodeString(FixationEye), "1", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(CurrentFractionNumber), "1", "2", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmCodeString(TreatmentDeliveryType), "1", "2", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmCodeString(TreatmentTerminationStatus), "1", "1", "TreatmentSessionIonBeamSequence"); @@ -433,6 +453,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item) addElementToDataset(result, item, new DcmDecimalString(DeliveredSecondaryMeterset), "1", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(SpecifiedTreatmentTime), "1", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmDecimalString(DeliveredTreatmentTime), "1", "3", "TreatmentSessionIonBeamSequence"); + if (result.good()) result = DeliveredDepthDoseParametersSequence.write(item, "1-n", "3", "TreatmentSessionIonBeamSequence"); addElementToDataset(result, item, new DcmIntegerString(NumberOfControlPoints), "1", "1", "TreatmentSessionIonBeamSequence"); if (result.good()) result = IonControlPointDeliverySequence.write(item, "1-n", "1", "TreatmentSessionIonBeamSequence"); } @@ -539,6 +560,15 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::getDeliveredTreatmentTime( } +OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationEye(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(FixationEye, value, pos); +} + + OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationLightAzimuthalAngle(Float32 &value, const unsigned long pos) const { if (EmptyDefaultItem) @@ -557,6 +587,15 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationLightPolarAngle } +OFCondition DRTTreatmentSessionIonBeamSequence::Item::getModulatedScanModeType(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(ModulatedScanModeType, value, pos); +} + + OFCondition DRTTreatmentSessionIonBeamSequence::Item::getNumberOfBlocks(OFString &value, const signed long pos) const { if (EmptyDefaultItem) @@ -1026,6 +1065,19 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::setDeliveredTreatmentTime( } +OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationEye(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = FixationEye.putOFStringArray(value); + } + return result; +} + + OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationLightAzimuthalAngle(const Float32 value, const unsigned long pos) { if (EmptyDefaultItem) @@ -1044,6 +1096,19 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationLightPolarAngle } +OFCondition DRTTreatmentSessionIonBeamSequence::Item::setModulatedScanModeType(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = ModulatedScanModeType.putOFStringArray(value); + } + return result; +} + + OFCondition DRTTreatmentSessionIonBeamSequence::Item::setNumberOfBlocks(const OFString &value, const OFBool check) { OFCondition result = EC_IllegalCall; diff --git a/dcmrt/libsrc/drttsmds.cc b/dcmrt/libsrc/drttsmds.cc index c70d66ce..b9b104e3 100644 --- a/dcmrt/libsrc/drttsmds.cc +++ b/dcmrt/libsrc/drttsmds.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTTreatmentSummaryMeasuredDoseReferenceSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drttts.cc b/dcmrt/libsrc/drttts.cc index bb271cdd..11fd485a 100644 --- a/dcmrt/libsrc/drttts.cc +++ b/dcmrt/libsrc/drttts.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTToleranceTableSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtudis.cc b/dcmrt/libsrc/drtudis.cc new file mode 100644 index 00000000..b48c3937 --- /dev/null +++ b/dcmrt/libsrc/drtudis.cc @@ -0,0 +1,573 @@ +/* + * + * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * Source file for class DRTUDISequence + * + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 + * + */ + + +#include "dcmtk/config/osconfig.h" // make sure OS specific configuration is included first + +#include "dcmtk/dcmrt/seq/drtudis.h" + + +// --- item class --- + +DRTUDISequence::Item::Item(const OFBool emptyDefaultItem) + : EmptyDefaultItem(emptyDefaultItem), + DeviceDescription(DCM_DeviceDescription), + UniqueDeviceIdentifier(DCM_UniqueDeviceIdentifier) +{ +} + + +DRTUDISequence::Item::Item(const Item ©) + : EmptyDefaultItem(copy.EmptyDefaultItem), + DeviceDescription(copy.DeviceDescription), + UniqueDeviceIdentifier(copy.UniqueDeviceIdentifier) +{ +} + + +DRTUDISequence::Item::~Item() +{ +} + + +DRTUDISequence::Item &DRTUDISequence::Item::operator=(const Item ©) +{ + if (this != ©) + { + EmptyDefaultItem = copy.EmptyDefaultItem; + DeviceDescription = copy.DeviceDescription; + UniqueDeviceIdentifier = copy.UniqueDeviceIdentifier; + } + return *this; +} + + +void DRTUDISequence::Item::clear() +{ + if (!EmptyDefaultItem) + { + /* clear all DICOM attributes */ + UniqueDeviceIdentifier.clear(); + DeviceDescription.clear(); + } +} + + +OFBool DRTUDISequence::Item::isEmpty() +{ + return UniqueDeviceIdentifier.isEmpty() && + DeviceDescription.isEmpty(); +} + + +OFBool DRTUDISequence::Item::isValid() const +{ + return !EmptyDefaultItem; +} + + +OFCondition DRTUDISequence::Item::read(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + /* re-initialize object */ + clear(); + getAndCheckElementFromDataset(item, UniqueDeviceIdentifier, "1", "1", "UDISequence"); + getAndCheckElementFromDataset(item, DeviceDescription, "1", "3", "UDISequence"); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTUDISequence::Item::write(DcmItem &item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = EC_Normal; + addElementToDataset(result, item, new DcmUnlimitedText(UniqueDeviceIdentifier), "1", "1", "UDISequence"); + addElementToDataset(result, item, new DcmLongString(DeviceDescription), "1", "3", "UDISequence"); + } + return result; +} + + +OFCondition DRTUDISequence::Item::getDeviceDescription(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(DeviceDescription, value, pos); +} + + +OFCondition DRTUDISequence::Item::getUniqueDeviceIdentifier(OFString &value, const signed long pos) const +{ + if (EmptyDefaultItem) + return EC_IllegalCall; + else + return getStringValueFromElement(UniqueDeviceIdentifier, value, pos); +} + + +OFCondition DRTUDISequence::Item::setDeviceDescription(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal; + if (result.good()) + result = DeviceDescription.putOFStringArray(value); + } + return result; +} + + +OFCondition DRTUDISequence::Item::setUniqueDeviceIdentifier(const OFString &value, const OFBool check) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultItem) + { + result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal; + if (result.good()) + result = UniqueDeviceIdentifier.putOFStringArray(value); + } + return result; +} + + +// --- sequence class --- + +DRTUDISequence::DRTUDISequence(const OFBool emptyDefaultSequence) + : EmptyDefaultSequence(emptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + CurrentItem = SequenceOfItems.end(); +} + + +DRTUDISequence::DRTUDISequence(const DRTUDISequence ©) + : EmptyDefaultSequence(copy.EmptyDefaultSequence), + SequenceOfItems(), + CurrentItem(), + EmptyItem(OFTrue /*emptyDefaultItem*/) +{ + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); +} + + +DRTUDISequence &DRTUDISequence::operator=(const DRTUDISequence ©) +{ + if (this != ©) + { + clear(); + EmptyDefaultSequence = copy.EmptyDefaultSequence; + /* create a copy of the internal sequence of items */ + Item *item = NULL; + OFListConstIterator(Item *) current = copy.SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = copy.SequenceOfItems.end(); + while (current != last) + { + item = new Item(**current); + if (item != NULL) + { + SequenceOfItems.push_back(item); + } else { + /* memory exhausted, there is nothing we can do about it */ + break; + } + ++current; + } + CurrentItem = SequenceOfItems.begin(); + } + return *this; +} + + +DRTUDISequence::~DRTUDISequence() +{ + clear(); +} + + +void DRTUDISequence::clear() +{ + if (!EmptyDefaultSequence) + { + CurrentItem = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* delete all items and free memory */ + while (CurrentItem != last) + { + delete (*CurrentItem); + CurrentItem = SequenceOfItems.erase(CurrentItem); + } + /* make sure that the list is empty */ + SequenceOfItems.clear(); + CurrentItem = SequenceOfItems.end(); + } +} + + +OFBool DRTUDISequence::isEmpty() +{ + return SequenceOfItems.empty(); +} + + +OFBool DRTUDISequence::isValid() const +{ + return !EmptyDefaultSequence; +} + + +unsigned long DRTUDISequence::getNumberOfItems() const +{ + return SequenceOfItems.size(); +} + + +OFCondition DRTUDISequence::gotoFirstItem() +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + CurrentItem = SequenceOfItems.begin(); + result = EC_Normal; + } + return result; +} + + +OFCondition DRTUDISequence::gotoNextItem() +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + ++CurrentItem; + result = EC_Normal; + } + return result; +} + + +OFCondition DRTUDISequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator) +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTUDISequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const +{ + OFCondition result = EC_IllegalCall; + if (!SequenceOfItems.empty()) + { + unsigned long idx = num + 1; + iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + while ((--idx > 0) && (iterator != last)) + ++iterator; + /* specified list item found? */ + if ((idx == 0) && (iterator != last)) + result = EC_Normal; + else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTUDISequence::gotoItem(const unsigned long num) +{ + return gotoItem(num, CurrentItem); +} + + +OFCondition DRTUDISequence::getCurrentItem(Item *&item) const +{ + OFCondition result = EC_IllegalCall; + if (CurrentItem != SequenceOfItems.end()) + { + item = *CurrentItem; + result = EC_Normal; + } + return result; +} + + +DRTUDISequence::Item &DRTUDISequence::getCurrentItem() +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +const DRTUDISequence::Item &DRTUDISequence::getCurrentItem() const +{ + if (CurrentItem != SequenceOfItems.end()) + return **CurrentItem; + else + return EmptyItem; +} + + +OFCondition DRTUDISequence::getItem(const unsigned long num, Item *&item) +{ + OFListIterator(Item *) iterator; + OFCondition result = gotoItem(num, iterator); + if (result.good()) + item = *iterator; + return result; +} + + +DRTUDISequence::Item &DRTUDISequence::getItem(const unsigned long num) +{ + OFListIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +const DRTUDISequence::Item &DRTUDISequence::getItem(const unsigned long num) const +{ + OFListConstIterator(Item *) iterator; + if (gotoItem(num, iterator).good()) + return **iterator; + else + return EmptyItem; +} + + +DRTUDISequence::Item &DRTUDISequence::operator[](const unsigned long num) +{ + return getItem(num); +} + + +const DRTUDISequence::Item &DRTUDISequence::operator[](const unsigned long num) const +{ + return getItem(num); +} + + +OFCondition DRTUDISequence::addItem(Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.push_back(item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } + return result; +} + + +OFCondition DRTUDISequence::insertItem(const unsigned long pos, Item *&item) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + result = gotoItem(pos, iterator); + if (result.good()) + { + item = new Item(); + if (item != NULL) + { + SequenceOfItems.insert(iterator, 1, item); + result = EC_Normal; + } else + result = EC_MemoryExhausted; + } else + result = addItem(item); + } + return result; +} + + +OFCondition DRTUDISequence::removeItem(const unsigned long pos) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + OFListIterator(Item *) iterator; + if (gotoItem(pos, iterator).good()) + { + delete *iterator; + iterator = SequenceOfItems.erase(iterator); + result = EC_Normal; + } else + result = EC_IllegalParameter; + } + return result; +} + + +OFCondition DRTUDISequence::read(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + /* re-initialize object */ + clear(); + /* retrieve sequence element from dataset */ + DcmSequenceOfItems *sequence; + result = dataset.findAndGetSequence(DCM_UDISequence, sequence); + if (sequence != NULL) + { + if (checkElementValue(*sequence, card, type, result, moduleName)) + { + DcmStack stack; + OFBool first = OFTrue; + /* iterate over all sequence items */ + while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good()) + { + DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top()); + if (ditem != NULL) + { + Item *item = new Item(); + if (item != NULL) + { + result = item->read(*ditem); + if (result.good()) + { + /* append new item to the end of the list */ + SequenceOfItems.push_back(item); + first = OFFalse; + } + } else + result = EC_MemoryExhausted; + } else + result = EC_CorruptedData; + } + } + } else { + DcmSequenceOfItems element(DCM_UDISequence); + checkElementValue(element, card, type, result, moduleName); + } + } + return result; +} + + +OFCondition DRTUDISequence::write(DcmItem &dataset, + const OFString &card, + const OFString &type, + const char *moduleName) +{ + OFCondition result = EC_IllegalCall; + if (!EmptyDefaultSequence) + { + result = EC_MemoryExhausted; + DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_UDISequence); + if (sequence != NULL) + { + result = EC_Normal; + /* an empty optional sequence is not written */ + if ((type == "2") || !SequenceOfItems.empty()) + { + OFListIterator(Item *) iterator = SequenceOfItems.begin(); + const OFListConstIterator(Item *) last = SequenceOfItems.end(); + /* iterate over all sequence items */ + while (result.good() && (iterator != last)) + { + DcmItem *item = new DcmItem(); + if (item != NULL) + { + /* append new item to the end of the sequence */ + result = sequence->append(item); + if (result.good()) + { + result = (*iterator)->write(*item); + ++iterator; + } else + delete item; + } else + result = EC_MemoryExhausted; + } + if (result.good()) + { + /* insert sequence element into the dataset */ + result = dataset.insert(sequence, OFTrue /*replaceOld*/); + } + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + if (result.good()) + { + /* forget reference to sequence object (avoid deletion below) */ + sequence = NULL; + } + } + else if (type == "1") + { + /* empty type 1 sequence not allowed */ + result = RT_EC_InvalidValue; + if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL)) + checkElementValue(*sequence, card, type, result, moduleName); + } + /* delete sequence (if not inserted into the dataset) */ + delete sequence; + } + } + return result; +} + + +// end of source file diff --git a/dcmrt/libsrc/drtvls.cc b/dcmrt/libsrc/drtvls.cc index 3694971a..4e5afb76 100644 --- a/dcmrt/libsrc/drtvls.cc +++ b/dcmrt/libsrc/drtvls.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTVOILUTSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtwps.cc b/dcmrt/libsrc/drtwps.cc index 3ccbe58f..b96acb50 100644 --- a/dcmrt/libsrc/drtwps.cc +++ b/dcmrt/libsrc/drtwps.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTWedgePositionSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtwrs.cc b/dcmrt/libsrc/drtwrs.cc index bac12560..292e736f 100644 --- a/dcmrt/libsrc/drtwrs.cc +++ b/dcmrt/libsrc/drtwrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTWADORetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtwrsrs.cc b/dcmrt/libsrc/drtwrsrs.cc index c2a748b9..666be36c 100644 --- a/dcmrt/libsrc/drtwrsrs.cc +++ b/dcmrt/libsrc/drtwrsrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTWADORSRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtws.cc b/dcmrt/libsrc/drtws.cc index 99b9f528..05e0b82b 100644 --- a/dcmrt/libsrc/drtws.cc +++ b/dcmrt/libsrc/drtws.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTWedgeSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/libsrc/drtxrs.cc b/dcmrt/libsrc/drtxrs.cc index a9fffff7..17e47324 100644 --- a/dcmrt/libsrc/drtxrs.cc +++ b/dcmrt/libsrc/drtxrs.cc @@ -1,13 +1,13 @@ /* * * Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany - * Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class DRTXDSRetrievalSequence * - * Generated automatically from DICOM PS 3.3-2015c - * File created on 2015-12-07 16:29:33 + * Generated automatically from DICOM PS 3.3-2016d + * File created on 2016-10-12 13:44:31 * */ diff --git a/dcmrt/tests/Makefile.dep b/dcmrt/tests/Makefile.dep index 8535fc6d..9e87cb0f 100644 --- a/dcmrt/tests/Makefile.dep +++ b/dcmrt/tests/Makefile.dep @@ -118,7 +118,8 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ @@ -128,16 +129,17 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \ - ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ - ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \ + ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h \ ../include/dcmtk/dcmrt/seq/drtpsics.h \ ../include/dcmtk/dcmrt/seq/drtpscs.h \ @@ -151,17 +153,17 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpsss.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ - ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \ - ../include/dcmtk/dcmrt/seq/drtcis.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \ + ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \ ../include/dcmtk/dcmrt/seq/drtrdros.h \ ../include/dcmtk/dcmrt/seq/drtrwvms.h \ ../include/dcmtk/dcmrt/seq/drtqds.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ ../include/dcmtk/dcmrt/seq/drtrfors.h \ ../include/dcmtk/dcmrt/seq/drtrsts.h \ - ../include/dcmtk/dcmrt/seq/drtrses.h \ - ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ + ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -183,9 +185,13 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtssrs.h \ - ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drtimage.h \ + ../include/dcmtk/dcmrt/seq/drtscris.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drtimage.h \ ../include/dcmtk/dcmrt/seq/drtcbars.h \ ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \ ../include/dcmtk/dcmrt/seq/drtds.h ../include/dcmtk/dcmrt/seq/drtes.h \ @@ -194,8 +200,9 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \ ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \ ../include/dcmtk/dcmrt/seq/drtmacds.h \ - ../include/dcmtk/dcmrt/seq/drtcss.h \ + ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtrims.h \ ../include/dcmtk/dcmrt/seq/drtrrtps5.h \ + ../include/dcmtk/dcmrt/seq/drtsis.h ../include/dcmtk/dcmrt/seq/drtsins.h \ ../include/dcmtk/dcmrt/seq/drtvls.h ../include/dcmtk/dcmrt/drtplan.h \ ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \ ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \ @@ -225,10 +232,11 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtbldts.h \ ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drtstrct.h \ ../include/dcmtk/dcmrt/seq/drtrros.h \ - ../include/dcmtk/dcmrt/seq/drtarics.h \ ../include/dcmtk/dcmrt/seq/drtrpps.h \ ../include/dcmtk/dcmrt/seq/drtrecs.h \ - ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \ + ../include/dcmtk/dcmrt/seq/drtrics.h \ + ../include/dcmtk/dcmrt/seq/drtsptcs.h \ + ../include/dcmtk/dcmrt/seq/drtrrs.h \ ../include/dcmtk/dcmrt/seq/drtrrros.h \ ../include/dcmtk/dcmrt/seq/drtspccs.h ../include/dcmtk/dcmrt/drttreat.h \ ../include/dcmtk/dcmrt/seq/drtfgss.h \ @@ -419,27 +427,30 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtcsis.h \ ../include/dcmtk/dcmrt/seq/drtcctus.h \ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \ - ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \ + ../include/dcmtk/dcmrt/seq/drtpics.h \ + ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \ ../include/dcmtk/dcmrt/seq/drtois.h \ ../include/dcmtk/dcmrt/seq/drtporcs.h \ ../include/dcmtk/dcmrt/seq/drtcsas.h \ ../include/dcmtk/dcmrt/seq/drtdimcs.h \ - ../include/dcmtk/dcmrt/seq/drtdss.h \ + ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \ ../include/dcmtk/dcmrt/seq/drtdspcs.h \ ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \ ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \ ../include/dcmtk/dcmrt/seq/drtbvcps.h \ ../include/dcmtk/dcmrt/seq/drtrbas8.h \ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \ - ../include/dcmtk/dcmrt/seq/drthsdrs.h \ - ../include/dcmtk/dcmrt/seq/drtians.h \ - ../include/dcmtk/dcmrt/seq/drtiais.h \ + ../include/dcmtk/dcmrt/seq/drtgpis.h \ ../include/dcmtk/dcmrt/seq/drtipiqs.h \ ../include/dcmtk/dcmrt/seq/drtaadcs.h \ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \ + ../include/dcmtk/dcmrt/seq/drthsdrs.h \ + ../include/dcmtk/dcmrt/seq/drtians.h \ + ../include/dcmtk/dcmrt/seq/drtiais.h \ ../include/dcmtk/dcmrt/seq/drtiseis.h \ - ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \ - ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \ + ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \ + ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \ + ../include/dcmtk/dcmrt/seq/drtopis.h \ ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \ @@ -455,8 +466,11 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtporis.h \ ../include/dcmtk/dcmrt/seq/drtprsis.h \ ../include/dcmtk/dcmrt/seq/drtpdecs.h \ - ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \ + ../include/dcmtk/dcmrt/seq/drtdias.h \ + ../include/dcmtk/dcmrt/seq/drtpdeds.h \ + ../include/dcmtk/dcmrt/seq/drtpcs.h \ ../include/dcmtk/dcmrt/seq/drtrppcs.h \ + ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \ ../include/dcmtk/dcmrt/seq/drtrpphs.h \ ../include/dcmtk/dcmrt/seq/drtdimrs.h \ ../include/dcmtk/dcmrt/seq/drtdirs.h \ @@ -466,15 +480,19 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmrt/seq/drtrppss.h \ ../include/dcmtk/dcmrt/seq/drtrrtps3.h \ ../include/dcmtk/dcmrt/seq/drtrsers.h \ - ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \ - ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \ - ../include/dcmtk/dcmrt/seq/drtras.h \ + ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \ + ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \ ../include/dcmtk/dcmrt/seq/drtrpcs.h \ ../include/dcmtk/dcmrt/seq/drtspcs.h \ ../include/dcmtk/dcmrt/seq/drtrscs.h \ - ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \ + ../include/dcmtk/dcmrt/seq/drtsins.h \ + ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \ + ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \ + ../include/dcmtk/dcmrt/seq/drtssrcs.h \ ../include/dcmtk/dcmrt/seq/drtscris.h \ ../include/dcmtk/dcmrt/seq/drttts.h \ ../include/dcmtk/dcmrt/seq/drtbldts.h \ - ../include/dcmtk/dcmrt/seq/drttms9.h + ../include/dcmtk/dcmrt/seq/drttms9.h \ + ../include/dcmtk/dcmrt/seq/drtudis.h diff --git a/dcmseg/include/dcmtk/dcmseg/segdoc.h b/dcmseg/include/dcmtk/dcmseg/segdoc.h index 5e70154c..1e0de33b 100644 --- a/dcmseg/include/dcmtk/dcmseg/segdoc.h +++ b/dcmseg/include/dcmtk/dcmseg/segdoc.h @@ -26,6 +26,7 @@ #include "dcmtk/ofstd/ofvector.h" // for OFVector #include "dcmtk/dcmiod/iodimage.h" // common image IOD attribute access #include "dcmtk/dcmiod/iodmacro.h" +#include "dcmtk/dcmiod/modimagepixel.h" #include "dcmtk/dcmiod/modsegmentationseries.h" // for segmentation series module #include "dcmtk/dcmiod/modenhequipment.h" // for enhanced general equipment module @@ -48,7 +49,7 @@ class FGDerivationImage; /** Class representing an object of the "Segmentation SOP Class". */ class DCMTK_DCMSEG_EXPORT DcmSegmentation -: public DcmIODImage +: public DcmIODImage > { public: @@ -61,7 +62,7 @@ public: // -------------------- loading and saving --------------------- - /** Load Segmentation object from item file + /** Load Segmentation object from file * @param filename The file to read from * @param segmentation The resulting segmentation object. NULL if dataset * could not be read successfully. @@ -70,7 +71,7 @@ public: static OFCondition loadFile(const OFString& filename, DcmSegmentation*& segmentation); - /** Load Segmentation object from item object. + /** Load Segmentation object from dataset object. * @param dataset The dataset to read from * @param segmentation The resulting segmentation object. NULL if dataset * could not be read successfully. @@ -146,22 +147,6 @@ public: static FGDerivationImage* createDerivationImageFG(const OFVector& derivationImages, const OFString& derivationDescription); - /** Take over general information for Patient, Study, Series and/or Frame of Reference - * from existing file - * @param filename The filename to read from - * @param usePatient If OFTrue, Patient level information is imported - * @param useStudy If OFTrue, Study level information is imported - * @param useSeries If OFTrue, Series level information is imported - * @param useFoR If OFTrue, Frame of Reference information is imported - * @return EC_Normal if reading was successful (i.e.\ if any information could - * be read), otherwise an error is returned - */ - OFCondition importPatientStudyFoR(const OFString& filename, - const OFBool usePatient, - const OFBool useStudy, - const OFBool useSeries, - const OFBool useFoR = OFFalse); - // -------------------- access --------------------- /** Get number of frames, based on the number of items in the shared @@ -273,7 +258,7 @@ public: Uint16& segmentNumber); /** Add a functional group for all frames - * @param group The group to be added as shared functional group + * @param group The group to be added as shared functional group. The * @return EC_Normal if adding was successful, error otherwise */ virtual OFCondition addForAllFrames(const FGBase& group); @@ -287,7 +272,9 @@ public: * @param segmentNumber The logical segment number (>=1) this frame refers to. * The segment identified by the segmentNumber must already exist. * @param perFrameInformation The functional groups that identify this frame (i.e. - * which are planned to be not common for all other frames) + * which are planned to be not common for all other frames). The + * functional groups are copied, so ownership of each group stays + * with the caller no matter what the method returns. * @return EC_Normal if adding was successful, error otherwise */ virtual OFCondition addFrame(Uint8* pixData, @@ -373,7 +360,7 @@ protected: * the image pixel module manually. * @return The Image Pixel Module */ - virtual IODImagePixelModule& getImagePixel(); + virtual IODImagePixelModule& getImagePixel(); /** Initialize IOD rules */ diff --git a/dcmseg/libsrc/Makefile.dep b/dcmseg/libsrc/Makefile.dep index a9ee8fbf..f0a3adda 100644 --- a/dcmseg/libsrc/Makefile.dep +++ b/dcmseg/libsrc/Makefile.dep @@ -10,13 +10,17 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmseg/segdoc.h \ ../../ofstd/include/dcmtk/ofstd/ofvector.h \ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofutil.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofstring.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ - ../../ofstd/include/dcmtk/ofstd/ofutil.h \ - ../../ofstd/include/dcmtk/ofstd/oftraits.h \ - ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \ ../../ofstd/include/dcmtk/ofstd/oflist.h \ ../../ofstd/include/dcmtk/ofstd/ofcond.h \ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \ @@ -123,7 +127,6 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ ../../ofstd/include/dcmtk/ofstd/ofoption.h \ - ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ @@ -133,6 +136,8 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ @@ -212,6 +217,8 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -244,11 +251,9 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -279,11 +284,14 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmseg/segtypes.h ../include/dcmtk/dcmseg/segdef.h \ ../include/dcmtk/dcmseg/segdoc.h \ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \ + ../../ofstd/include/dcmtk/ofstd/ofvriant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \ + ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \ + ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \ ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \ ../../ofstd/include/dcmtk/ofstd/ofoption.h \ - ../../ofstd/include/dcmtk/ofstd/ofalign.h \ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \ ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \ @@ -292,6 +300,8 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \ + ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \ ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \ @@ -362,6 +372,8 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -392,11 +404,9 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ diff --git a/dcmseg/libsrc/segdoc.cc b/dcmseg/libsrc/segdoc.cc index 2261fc9b..fcf7338a 100644 --- a/dcmseg/libsrc/segdoc.cc +++ b/dcmseg/libsrc/segdoc.cc @@ -33,11 +33,11 @@ // default constructor (protected, instance creation via create() function) DcmSegmentation::DcmSegmentation() -: DcmIODImage(), - m_SegmentationSeries(DcmIODImage::getData(), DcmIODImage::getRules()), - m_EnhancedGeneralEquipmentModule(DcmIODImage::getData(), DcmIODImage::getRules()), - m_FG(DcmIODImage::getData(), DcmIODImage::getRules()), - m_DimensionModule(DcmIODImage::getData(), DcmIODImage::getRules()), +: DcmSegmentation::IODImage(OFin_place >), + m_SegmentationSeries(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()), + m_EnhancedGeneralEquipmentModule(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()), + m_FG(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()), + m_DimensionModule(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()), m_Frames(), m_ImageType("DERIVED\\PRIMARY"), m_ContentIdentificationMacro(), @@ -182,15 +182,8 @@ OFCondition DcmSegmentation::createCommon(DcmSegmentation*& segmentation, segmentation = NULL; return EC_InvalidValue; } - OFDate date; - date.setCurrentDate(); - date.getISOFormattedDate(tempstr, OFFalse /* no delimiters */); - segmentation->getGeneralImage().setContentDate(tempstr); - OFTime time; - time.setCurrentTime(); - time.getISOFormattedTime(tempstr, OFTrue /* include seconds */, OFFalse, OFFalse, OFFalse); - segmentation->getGeneralImage().setContentTime(tempstr); + DcmIODUtil::setContentDateAndTimeNow(segmentation->getGeneralImage()); result = segmentation->setEquipmentInfo(equipmentInfo, OFTrue /* check */); } @@ -227,7 +220,7 @@ OFCondition DcmSegmentation::read(DcmItem &dataset) } // Read attributes in base classes - DcmIODImage::read(dataset); + DcmSegmentation::IODImage::read(dataset); // Read Segmentation Series Module m_SegmentationSeries.read(dataset); @@ -309,37 +302,12 @@ OFCondition DcmSegmentation::write(DcmItem &dataset) // Multi-frame Functional Groups Module (except functional groups itself) // SOP Common Module // Common Instance Reference Module - if (result.good()) result = DcmIODImage::write(dataset); + if (result.good()) result = DcmSegmentation::IODImage::write(dataset); return result; } -OFCondition DcmSegmentation::importPatientStudyFoR(const OFString& filename, - const OFBool usePatient, - const OFBool useStudy, - const OFBool useSeries, - const OFBool useFoR) -{ - DcmFileFormat dcmff; - OFCondition result = dcmff.loadFile(filename.c_str()); - if ( result.good() ) - { - DcmDataset *dset = dcmff.getDataset(); - if (dset != NULL) - { - result = import(*dset, usePatient, useStudy, useSeries, useFoR); - } - else - { - DCMSEG_ERROR("Unable to get dataset from file for copying patient, study, series and/or frame of reference information"); - result = EC_IllegalCall; - } - } - return result; -} - - FGInterface& DcmSegmentation::getFunctionalGroups() { return m_FGInterface; @@ -361,7 +329,7 @@ size_t DcmSegmentation::getNumberOfSegments() IODGeneralEquipmentModule& DcmSegmentation::getEquipment() { - return DcmIODImage::getEquipment(); + return DcmSegmentation::IODImage::getEquipment(); } @@ -1036,7 +1004,7 @@ OFCondition DcmSegmentation::writeSegmentationImageModule(DcmItem& dataset) void DcmSegmentation::clearData() { - DcmIODImage::clearData(); + DcmSegmentation::IODImage::clearData(); m_FG.clearData(); m_FGInterface.clear(); DcmIODUtil::freeContainer(m_Frames); @@ -1180,9 +1148,9 @@ OFCondition DcmSegmentation::readSegmentationType(DcmItem& item) // protected override of public base class function -IODImagePixelModule& DcmSegmentation::getImagePixel() +IODImagePixelModule& DcmSegmentation::getImagePixel() { - return DcmIODImage::getImagePixel(); + return *OFget >( &DcmSegmentation::IODImage::getImagePixel() ); } @@ -1253,7 +1221,7 @@ OFCondition DcmSegmentation::decompress(DcmDataset& dset) } else // We do not accept any transfer syntax that could be lossy compressed { - DCMSEG_ERROR("No conversion from RLE original to uncompressed transfer syntax possible!"); + DCMSEG_ERROR("Transfer syntax " << DcmXfer(xfer).getXferName() << " uses lossy compression, not supported for Segmentation objects!"); result = IOD_EC_CannotDecompress; } } diff --git a/dcmsr/apps/xml2dsr.cc b/dcmsr/apps/xml2dsr.cc index 9937499c..d6fae3e7 100644 --- a/dcmsr/apps/xml2dsr.cc +++ b/dcmsr/apps/xml2dsr.cc @@ -175,13 +175,22 @@ int main(int argc, char *argv[]) opt_readFlags |= DSRTypes::XF_useDcmsrNamespace; if (cmd.findOption("--generate-new-uids")) + { opt_generateUIDs = OFTrue; + opt_readFlags |= DSRTypes::XF_acceptEmptyStudySeriesInstanceUID; + } cmd.beginOptionBlock(); if (cmd.findOption("--dont-overwrite-uids")) + { + app.checkDependence("--dont-overwrite-uids", "--generate-new-uids", opt_generateUIDs); opt_overwriteUIDs = OFFalse; + } if (cmd.findOption("--overwrite-uids")) + { + app.checkDependence("--overwrite-uids", "--generate-new-uids", opt_generateUIDs); opt_overwriteUIDs = OFTrue; + } cmd.endOptionBlock(); /* output options */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h index a57f9159..4f10a969 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h @@ -5,8 +5,8 @@ * * Header file for class CID100_QuantitativeDiagnosticImagingProcedures * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:37 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:46 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h index 8f143faf..d92349fe 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h @@ -5,8 +5,8 @@ * * Header file for class CID10013_CTAcquisitionType * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:27:00 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:09 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h index 6402909f..6c5f88e8 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h @@ -5,8 +5,8 @@ * * Header file for class CID10033_CTReconstructionAlgorithm * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:27:02 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:11 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h index f32990e5..e8f2a798 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h @@ -5,8 +5,8 @@ * * Header file for class CID11_RouteOfAdministration * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:32 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:40 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h index d7a2c452..ccebd521 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h @@ -5,8 +5,8 @@ * * Header file for class CID244_Laterality * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:38 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:47 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h index dc9f3835..4b862e96 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h @@ -5,8 +5,8 @@ * * Header file for class CID29_AcquisitionModality * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:33 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:42 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h index bf39d929..c58943f3 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h @@ -5,8 +5,8 @@ * * Header file for class CID4020_PETRadionuclide * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:40 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:49 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h index 72c4b033..6a778589 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h @@ -5,8 +5,8 @@ * * Header file for class CID4021_PETRadiopharmaceutical * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:42 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:51 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h index 55b26ac2..df270174 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h @@ -5,8 +5,8 @@ * * Header file for class CID4031_CommonAnatomicRegions * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:44 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:53 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h index da14b723..581d5f72 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h @@ -5,8 +5,8 @@ * * Header file for class CID42_NumericValueQualifier * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:35 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:44 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h index 66ef9499..01757988 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h @@ -40,29 +40,29 @@ class DCMTK_CMR_EXPORT CID5000_Languages */ enum EnumType { - /// (eng,IETF4646,"English") + /// (eng,RFC5646,"English") English, - /// (en-CA,IETF4646","English (CA)") + /// (en-CA,RFC5646,"English (CA)") English_CA, - /// (en-GB,IETF4646","English (GB)") + /// (en-GB,RFC5646,"English (GB)") English_GB, - /// (en-US,IETF4646","English (US)") + /// (en-US,RFC5646,"English (US)") English_US, - /// (fra,IETF4646","French") + /// (fra,RFC5646,"French") French, - /// (fr-CA,IETF4646","French (CA)") + /// (fr-CA,RFC5646,"French (CA)") French_CA, - /// (fr-CH,IETF4646","French (CH)") + /// (fr-CH,RFC5646,"French (CH)") French_CH, - /// (fr-FR,IETF4646","French (FR)") + /// (fr-FR,RFC5646,"French (FR)") French_FR, - /// (deu,IETF4646","German") + /// (deu,RFC5646,"German") German, - /// (de-AT,IETF4646","German (AT)") + /// (de-AT,RFC5646,"German (AT)") German_AT, - /// (de-CH,IETF4646","German (CH)") + /// (de-CH,RFC5646,"German (CH)") German_CH, - /// (de-DE,IETF4646","German (DE)") + /// (de-DE,RFC5646,"German (DE)") German_DE }; diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h index 911538be..792fbc43 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h @@ -5,8 +5,8 @@ * * Header file for class CID6147_ResponseCriteria * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:45 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:55 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h index 04867c6b..05eb16d0 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h @@ -5,8 +5,8 @@ * * Header file for class CID7021_MeasurementReportDocumentTitles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:47 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:56 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h index 95ffa0c7..ce54d9d5 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h @@ -5,8 +5,8 @@ * * Header file for class CID7181_AbstractMultiDimensionalImageModelComponentUnits * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:49 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:58 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h index 6b3e3a55..b8e3a09c 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h @@ -5,8 +5,8 @@ * * Header file for class CID7445_DeviceParticipatingRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:51 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:00 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h index 7e937d03..479070c8 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h @@ -5,8 +5,8 @@ * * Header file for class CID7452_OrganizationalRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:53 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:02 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h index c259b373..13610409 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h @@ -5,8 +5,8 @@ * * Header file for class CID7453_PerformingRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:55 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:03 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h index df4c815b..33a8797c 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h @@ -5,8 +5,8 @@ * * Header file for class CID7464_GeneralRegionOfInterestMeasurementModifiers * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:57 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:05 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h index dd60c968..84055891 100644 --- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h +++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h @@ -5,8 +5,8 @@ * * Header file for class CID7469_GenericIntensityAndSizeMeasurements * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:59 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:07 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/codes/dcm.h b/dcmsr/include/dcmtk/dcmsr/codes/dcm.h index 960c0df3..a0072d03 100644 --- a/dcmsr/include/dcmtk/dcmsr/codes/dcm.h +++ b/dcmsr/include/dcmtk/dcmsr/codes/dcm.h @@ -5,8 +5,8 @@ * * Header file with DICOM Code Definitions (Coding Scheme "DCM", Version "01") * - * Generated automatically from DICOM PS 3.16-2016c - * File created on 2016-06-13 09:53:55 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 11:50:13 by J. Riesmeier * */ @@ -33,7 +33,7 @@ * code definitions * *--------------------*/ -// total number of codes: 3400 +// total number of codes: 3471 // - retired: 143 // - no name: 27 // - not unique: 14 @@ -3447,5 +3447,76 @@ #define CODE_DCM_VascularImagingSpecialty DSRBasicCodedEntry("128017", "DCM", "Vascular Imaging Specialty") #define CODE_DCM_FWPByGA_Campbell_1991 DSRBasicCodedEntry("128040", "DCM", "FWP by GA, Campbell, 1991") #define CODE_DCM_FWPByGA_Hadlock_1991 DSRBasicCodedEntry("128041", "DCM", "FWP by GA, Hadlock, 1991") +#define CODE_DCM_PlaneThroughSuperiorExtent DSRBasicCodedEntry("128120", "DCM", "Plane through Superior Extent") +#define CODE_DCM_PlaneThroughInferiorExtent DSRBasicCodedEntry("128121", "DCM", "Plane through Inferior Extent") +#define CODE_DCM_PlaneThroughProximalExtent DSRBasicCodedEntry("128122", "DCM", "Plane through Proximal Extent") +#define CODE_DCM_PlaneThroughDistalExtent DSRBasicCodedEntry("128123", "DCM", "Plane through Distal Extent") +#define CODE_DCM_PlaneThroughMedialExtent DSRBasicCodedEntry("128124", "DCM", "Plane through Medial Extent") +#define CODE_DCM_PlaneThroughLateralExtent DSRBasicCodedEntry("128125", "DCM", "Plane through Lateral Extent") +#define CODE_DCM_PlaneThroughLeftmostExtent DSRBasicCodedEntry("128126", "DCM", "Plane through Leftmost Extent") +#define CODE_DCM_PlaneThroughRightmostExtent DSRBasicCodedEntry("128127", "DCM", "Plane through Rightmost Extent") +#define CODE_DCM_PlaneThroughAnteriorExtent DSRBasicCodedEntry("128128", "DCM", "Plane through Anterior Extent") +#define CODE_DCM_PlaneThroughPosteriorExtent DSRBasicCodedEntry("128129", "DCM", "Plane through Posterior Extent") +#define CODE_DCM_PlaneThroughCenter DSRBasicCodedEntry("128130", "DCM", "Plane through Center") +#define CODE_DCM_GeometricCenterpoint DSRBasicCodedEntry("128137", "DCM", "Geometric Centerpoint") +#define CODE_DCM_CenterOfMass DSRBasicCodedEntry("128138", "DCM", "Center of Mass") +#define CODE_DCM_ImpairedRenalFunction DSRBasicCodedEntry("128144", "DCM", "Impaired Renal Function") +#define CODE_DCM_LaserCrossHairs DSRBasicCodedEntry("128151", "DCM", "Laser Cross-hairs") +#define CODE_DCM_AcquiredVolume DSRBasicCodedEntry("128160", "DCM", "Acquired Volume") +#define CODE_DCM_AbdominalRadiology DSRBasicCodedEntry("128170", "DCM", "Abdominal Radiology") +#define CODE_DCM_BiomedicalEngineering DSRBasicCodedEntry("128171", "DCM", "Biomedical Engineering") +#define CODE_DCM_CardiovascularRadiology DSRBasicCodedEntry("128172", "DCM", "Cardiovascular Radiology") +#define CODE_DCM_InformationTechnology DSRBasicCodedEntry("128173", "DCM", "Information Technology") +#define CODE_DCM_MedicalPhysics DSRBasicCodedEntry("128174", "DCM", "Medical Physics") +#define CODE_DCM_MusculoskeletalRadiology DSRBasicCodedEntry("128175", "DCM", "Musculoskeletal Radiology") +#define CODE_DCM_PediatricRadiology DSRBasicCodedEntry("128177", "DCM", "Pediatric Radiology") +#define CODE_DCM_ThoracicRadiology DSRBasicCodedEntry("128179", "DCM", "Thoracic Radiology") +#define CODE_DCM_ForRTWorkflow DSRBasicCodedEntry("128180", "DCM", "For RT Workflow") +#define CODE_DCM_DiagnosticSourceImages DSRBasicCodedEntry("128181", "DCM", "Diagnostic Source Images") +#define CODE_DCM_SegmentationResult DSRBasicCodedEntry("128182", "DCM", "Segmentation Result") +#define CODE_DCM_RegistrationResult DSRBasicCodedEntry("128183", "DCM", "Registration Result") +#define CODE_DCM_PrePlanningResult DSRBasicCodedEntry("128184", "DCM", "Pre-Planning Result") +#define CODE_DCM_RTPrescriptionResult DSRBasicCodedEntry("128185", "DCM", "RT Prescription Result") +#define CODE_DCM_DoseCalculationImageSeries DSRBasicCodedEntry("128186", "DCM", "Dose Calculation Image Series") +#define CODE_DCM_CoordinateAlignmentImageSeries DSRBasicCodedEntry("128187", "DCM", "Coordinate Alignment Image Series") +#define CODE_DCM_RTTreatmentSimulationResult DSRBasicCodedEntry("128188", "DCM", "RT Treatment Simulation Result") +#define CODE_DCM_RTPlanningResult DSRBasicCodedEntry("128189", "DCM", "RT Planning Result") +#define CODE_DCM_DosimetricResult DSRBasicCodedEntry("128190", "DCM", "Dosimetric Result") +#define CODE_DCM_PatientSetupVerificationResult DSRBasicCodedEntry("128191", "DCM", "Patient Setup Verification Result") +#define CODE_DCM_RTTreatmentSessionResult DSRBasicCodedEntry("128192", "DCM", "RT Treatment Session Result") +#define CODE_DCM_RTTreatmentCourseSummary DSRBasicCodedEntry("128193", "DCM", "RT Treatment Course Summary") +#define CODE_DCM_RTTreatmentQAResult DSRBasicCodedEntry("128194", "DCM", "RT Treatment QA Result") +#define CODE_DCM_ForDiagnosis DSRBasicCodedEntry("128195", "DCM", "For Diagnosis") +#define CODE_DCM_ForSegmentation DSRBasicCodedEntry("128196", "DCM", "For Segmentation") +#define CODE_DCM_ForRTPrescription DSRBasicCodedEntry("128197", "DCM", "For RT Prescription") +#define CODE_DCM_ForRTTreatmentPlanning DSRBasicCodedEntry("128198", "DCM", "For RT Treatment Planning") +#define CODE_DCM_ForPlanComparison DSRBasicCodedEntry("128199", "DCM", "For Plan Comparison") +#define CODE_DCM_ForRTPlanSummation DSRBasicCodedEntry("128200", "DCM", "For RT Plan Summation") +#define CODE_DCM_ForPhysicianReview DSRBasicCodedEntry("128201", "DCM", "For Physician Review") +#define CODE_DCM_ForPhysicistReview DSRBasicCodedEntry("128202", "DCM", "For Physicist Review") +#define CODE_DCM_ForTumorBoard DSRBasicCodedEntry("128203", "DCM", "For Tumor Board") +#define CODE_DCM_ForPlanQualityAssurance DSRBasicCodedEntry("128204", "DCM", "For Plan Quality Assurance") +#define CODE_DCM_ForMachineQualityAssurance DSRBasicCodedEntry("128205", "DCM", "For Machine Quality Assurance") +#define CODE_DCM_ForPatientSetupVerification DSRBasicCodedEntry("128206", "DCM", "For Patient Setup Verification") +#define CODE_DCM_ForClinicalTrialSubmission DSRBasicCodedEntry("128207", "DCM", "For Clinical Trial Submission") +#define CODE_DCM_ForTumorRegistry DSRBasicCodedEntry("128208", "DCM", "For Tumor Registry") +#define CODE_DCM_RTWorkflowInputUsed DSRBasicCodedEntry("128209", "DCM", "RT Workflow Input Used") +#define CODE_DCM_RTPrescriptionInputUsed DSRBasicCodedEntry("128210", "DCM", "RT Prescription Input Used") +#define CODE_DCM_RTTreatmentPlanningInputUsed DSRBasicCodedEntry("128211", "DCM", "RT Treatment Planning Input Used") +#define CODE_DCM_RTPlanSummationInputUsed DSRBasicCodedEntry("128212", "DCM", "RT Plan Summation Input Used") +#define CODE_DCM_PhysicianReviewInputUsed DSRBasicCodedEntry("128213", "DCM", "Physician Review Input Used") +#define CODE_DCM_PhysicistReviewInputUsed DSRBasicCodedEntry("128214", "DCM", "Physicist Review Input Used") +#define CODE_DCM_PlanQualityAssuranceInputUsed DSRBasicCodedEntry("128215", "DCM", "Plan Quality Assurance Input Used") +#define CODE_DCM_MachineQualityAssuranceInputUsed DSRBasicCodedEntry("128216", "DCM", "Machine Quality Assurance Input Used") +#define CODE_DCM_PatientSetupVerificationInputUsed DSRBasicCodedEntry("128217", "DCM", "Patient Setup Verification Input Used") +#define CODE_DCM_DiagnosisInputUsed DSRBasicCodedEntry("128218", "DCM", "Diagnosis Input Used") +#define CODE_DCM_ContouringInputUsed DSRBasicCodedEntry("128219", "DCM", "Contouring Input Used") +#define CODE_DCM_PlanComparisonInputUsed DSRBasicCodedEntry("128220", "DCM", "Plan Comparison Input Used") +#define CODE_DCM_TumorBoardInputUsed DSRBasicCodedEntry("128221", "DCM", "Tumor Board Input Used") +#define CODE_DCM_TumorRegistryInputUsed DSRBasicCodedEntry("128222", "DCM", "Tumor Registry Input Used") +#define CODE_DCM_ClinicalTrialSubmissionInputUsed DSRBasicCodedEntry("128223", "DCM", "Clinical Trial Submission Input Used") +#define CODE_DCM_SourceMeasurement DSRBasicCodedEntry("128224", "DCM", "Source measurement") +#define CODE_DCM_SourceReport DSRBasicCodedEntry("128225", "DCM", "Source report") +#define CODE_DCM_SourceRawData DSRBasicCodedEntry("128226", "DCM", "Source raw data") #endif diff --git a/dcmsr/include/dcmtk/dcmsr/codes/ncit.h b/dcmsr/include/dcmtk/dcmsr/codes/ncit.h index c917a164..995f73e2 100644 --- a/dcmsr/include/dcmtk/dcmsr/codes/ncit.h +++ b/dcmsr/include/dcmtk/dcmsr/codes/ncit.h @@ -5,8 +5,8 @@ * * Header file with NCIt Code Definitions (Coding Scheme "NCIt") * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:08:01 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 11:50:21 by J. Riesmeier * */ diff --git a/dcmsr/include/dcmtk/dcmsr/codes/umls.h b/dcmsr/include/dcmtk/dcmsr/codes/umls.h index b7ef28e7..6d6a3875 100644 --- a/dcmsr/include/dcmtk/dcmsr/codes/umls.h +++ b/dcmsr/include/dcmtk/dcmsr/codes/umls.h @@ -5,8 +5,8 @@ * * Header file with UMLS Code Definitions (Coding Scheme "UMLS") * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:08:00 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 11:50:20 by J. Riesmeier * */ @@ -33,7 +33,7 @@ * code definitions * *--------------------*/ -// total number of codes: 39 +// total number of codes: 40 // - retired: 0 // - no name: 0 // - not unique: 0 @@ -77,6 +77,7 @@ #define CODE_UMLS_Tyrosine3Octreotate_Ga68 DSRBasicCodedEntry("C1742831", "UMLS", "tyrosine-3-octreotate Ga^68^") #define CODE_UMLS_Fluoroestradiol_FES_F18 DSRBasicCodedEntry("C1831937", "UMLS", "Fluoroestradiol (FES) F^18^") #define CODE_UMLS_Sonographer DSRBasicCodedEntry("C1954848", "UMLS", "Sonographer") +#define CODE_UMLS_Neuroradiology DSRBasicCodedEntry("C2183225", "UMLS", "Neuroradiology") #define CODE_UMLS_InverseRatioVentilation DSRBasicCodedEntry("C2223982", "UMLS", "Inverse ratio ventilation") #define CODE_UMLS_RootMeanSquare DSRBasicCodedEntry("C2347976", "UMLS", "Root Mean Square") #define CODE_UMLS_TimePoint DSRBasicCodedEntry("C2348792", "UMLS", "Time Point") diff --git a/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h b/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h index 467dd386..a5a8f0aa 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h @@ -726,6 +726,10 @@ class DCMTK_DCMSR_EXPORT DSRCodedEntryValue OFString ContextUID; /// Mapping Resource (VR=CS, type 1C) OFString MappingResource; + /// Mapping Resource UID (VR=UI, type 3) + // - tbd: optional attribute not yet supported + /// Mapping Resource Name (VR=LO, type 3) + // - tbd: optional attribute not yet supported /// Context Group Version (VR=DT, type 1C) OFString ContextGroupVersion; /// Context Group Local Version (VR=DT, type 1C) diff --git a/dcmsr/include/dcmtk/dcmsr/dsrdoc.h b/dcmsr/include/dcmtk/dcmsr/dsrdoc.h index 3a0df65e..efb6f3fa 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrdoc.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrdoc.h @@ -1230,6 +1230,10 @@ class DCMTK_DCMSR_EXPORT DSRDocument DcmUniqueIdentifier InstanceCreatorUID; /// Coding Scheme Identification Sequence: (SQ, 1-n, 3) DSRCodingSchemeIdentificationList CodingSchemeIdentification; + /// Context Group Identification Sequence: (SQ, 1-n, 3) + // - tbd: optional attribute not yet supported + /// Mapping Resource Identification Sequence: (SQ, 1-n, 3) + // - tbd: optional attribute not yet supported // --- General Study Module (M) --- diff --git a/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h b/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h index 1d4d2f0e..7152c0a6 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h @@ -139,7 +139,7 @@ class DCMTK_DCMSR_EXPORT DSRSOPInstanceReferenceList const OFBool check = OFTrue); /** add item from specified DICOM dataset to the list of references. - * Internally an item representing the given dataset is inserted into the hierarchical + * Internally, an item representing the given dataset is inserted into the hierarchical * structure of studies, series and instances, if not already contained in the list. * In any case, the specified item is selected as the current one. ** @param dataset reference to DICOM dataset from which the relevant UIDs are retrieved diff --git a/dcmsr/include/dcmtk/dcmsr/dsrtlist.h b/dcmsr/include/dcmtk/dcmsr/dsrtlist.h index ed58b359..21e94468 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrtlist.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrtlist.h @@ -29,6 +29,7 @@ #include "dcmtk/dcmdata/dcerror.h" #include "dcmtk/ofstd/oflist.h" +#include "dcmtk/ofstd/ofvector.h" /*---------------------* @@ -148,6 +149,32 @@ template class DSRListOfItems return result; } + /** get copy of all items (as a vector) + ** @param items reference to a variable where the result should be stored. + * (always cleared before items are added) + ** @return status, EC_Normal if successful, an error code otherwise + */ + OFCondition getItems(OFVector &items) const + { + items.clear(); + if (!ItemList.empty()) + { + /* avoid re-allocations */ + items.reserve(ItemList.size()); + /* iterate over all list items */ + const OFLIST_TYPENAME OFListConstIterator(T) endPos = ItemList.end(); + OFLIST_TYPENAME OFListConstIterator(T) iterator = ItemList.begin(); + while (iterator != endPos) + { + /* and copy them to the passed vector */ + items.push_back(*iterator); + iterator++; + } + } + /* always return OK */ + return EC_Normal; + } + /** add item to the list ** @param item item to be added */ @@ -165,6 +192,20 @@ template class DSRListOfItems ItemList.push_back(item); } + /** add items to the list + ** @param items items to be added (stored as a vector) + */ + inline void addItems(const OFVector &items) + { + const OFTypename OFVector::const_iterator endPos = items.end(); + OFTypename OFVector::const_iterator iterator = items.begin(); + while (iterator != endPos) + { + ItemList.push_back(*iterator); + iterator++; + } + } + /** insert item at specified position to the list ** @param idx index of the item before the new one should be inserted (starting from 1) * @param item item to be inserted diff --git a/dcmsr/include/dcmtk/dcmsr/dsrtypes.h b/dcmsr/include/dcmtk/dcmsr/dsrtypes.h index 5ba54ad1..21cb147f 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrtypes.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrtypes.h @@ -396,6 +396,9 @@ class DCMTK_DCMSR_EXPORT DSRTypes /// write: add comments with details at beginning/end of included template (might be useful for debugging purposes) static const size_t XF_addCommentsForIncludedTemplate; + /// read: accept empty Study/Series/SOP Instance UID attribute values (must be filled later) + static const size_t XF_acceptEmptyStudySeriesInstanceUID; + /// shortcut: combines all XF_xxxAsAttribute write flags (see above) static const size_t XF_encodeEverythingAsAttribute; //@} diff --git a/dcmsr/include/dcmtk/dcmsr/dsrxmld.h b/dcmsr/include/dcmtk/dcmsr/dsrxmld.h index 871e9098..9da2add5 100644 --- a/dcmsr/include/dcmtk/dcmsr/dsrxmld.h +++ b/dcmsr/include/dcmtk/dcmsr/dsrxmld.h @@ -242,6 +242,13 @@ class DCMTK_DCMSR_EXPORT DSRXMLDocument */ void printUnexpectedNodeWarning(const DSRXMLCursor &cursor) const; + /** print warning message for missing attribute + ** @param cursor cursor pointing to the relevant node + * @param name name of the XML attribute + */ + void printMissingAttributeWarning(const DSRXMLCursor &cursor, + const char *name) const; + /** print general node error message ** @param cursor cursor pointing to the unexpected node * @param result status used to print details on the error (no message if EC_Normal) diff --git a/dcmsr/libcmr/cid100.cc b/dcmsr/libcmr/cid100.cc index 7e899772..245d9e80 100644 --- a/dcmsr/libcmr/cid100.cc +++ b/dcmsr/libcmr/cid100.cc @@ -5,8 +5,8 @@ * * Source file for class CID100_QuantitativeDiagnosticImagingProcedures * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:37 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:46 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid10013.cc b/dcmsr/libcmr/cid10013.cc index 39eec59a..5630fe2d 100644 --- a/dcmsr/libcmr/cid10013.cc +++ b/dcmsr/libcmr/cid10013.cc @@ -5,8 +5,8 @@ * * Source file for class CID10013_CTAcquisitionType * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:27:00 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:09 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid10033.cc b/dcmsr/libcmr/cid10033.cc index 7ebbee8c..b55b3999 100644 --- a/dcmsr/libcmr/cid10033.cc +++ b/dcmsr/libcmr/cid10033.cc @@ -5,8 +5,8 @@ * * Source file for class CID10033_CTReconstructionAlgorithm * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:27:02 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:11 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid11.cc b/dcmsr/libcmr/cid11.cc index 0ea6597a..ba5e4ce5 100644 --- a/dcmsr/libcmr/cid11.cc +++ b/dcmsr/libcmr/cid11.cc @@ -5,8 +5,8 @@ * * Source file for class CID11_RouteOfAdministration * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:32 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:40 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid244.cc b/dcmsr/libcmr/cid244.cc index f6affd9e..52406774 100644 --- a/dcmsr/libcmr/cid244.cc +++ b/dcmsr/libcmr/cid244.cc @@ -5,8 +5,8 @@ * * Source file for class CID244_Laterality * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:38 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:47 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid29.cc b/dcmsr/libcmr/cid29.cc index 770b2acd..7b351808 100644 --- a/dcmsr/libcmr/cid29.cc +++ b/dcmsr/libcmr/cid29.cc @@ -5,8 +5,8 @@ * * Source file for class CID29_AcquisitionModality * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:33 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:42 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid4020.cc b/dcmsr/libcmr/cid4020.cc index e64f47d4..8e93b562 100644 --- a/dcmsr/libcmr/cid4020.cc +++ b/dcmsr/libcmr/cid4020.cc @@ -5,8 +5,8 @@ * * Source file for class CID4020_PETRadionuclide * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:40 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:49 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid4021.cc b/dcmsr/libcmr/cid4021.cc index a64408ee..8a66790b 100644 --- a/dcmsr/libcmr/cid4021.cc +++ b/dcmsr/libcmr/cid4021.cc @@ -5,8 +5,8 @@ * * Source file for class CID4021_PETRadiopharmaceutical * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:42 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:51 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid4031.cc b/dcmsr/libcmr/cid4031.cc index 5e9dfee6..750c1c2e 100644 --- a/dcmsr/libcmr/cid4031.cc +++ b/dcmsr/libcmr/cid4031.cc @@ -5,8 +5,8 @@ * * Source file for class CID4031_CommonAnatomicRegions * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:44 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:53 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid42.cc b/dcmsr/libcmr/cid42.cc index 02c6ce3f..e53fcaec 100644 --- a/dcmsr/libcmr/cid42.cc +++ b/dcmsr/libcmr/cid42.cc @@ -5,8 +5,8 @@ * * Source file for class CID42_NumericValueQualifier * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:35 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:44 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid5000.cc b/dcmsr/libcmr/cid5000.cc index 7921bb92..da64f582 100644 --- a/dcmsr/libcmr/cid5000.cc +++ b/dcmsr/libcmr/cid5000.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2015, J. Riesmeier, Oldenburg, Germany + * Copyright (C) 2015-2016, J. Riesmeier, Oldenburg, Germany * All rights reserved. See COPYRIGHT file for details. * * Source file for class CID5000_Languages @@ -147,19 +147,19 @@ CID5000_Languages::CodeList &CID5000_Languages::getCodes() { /* create a new code list (should never fail) */ Codes = new CodeList(); - /*Codes and initialize it by adding the coded entries */ - Codes->insert(OFMake_pair(English, DSRBasicCodedEntry("eng", "IETF4646", "English"))); - Codes->insert(OFMake_pair(English_CA, DSRBasicCodedEntry("en-CA", "IETF4646", "English (CA)"))); - Codes->insert(OFMake_pair(English_GB, DSRBasicCodedEntry("en-GB", "IETF4646", "English (GB)"))); - Codes->insert(OFMake_pair(English_US, DSRBasicCodedEntry("en-US", "IETF4646", "English (US)"))); - Codes->insert(OFMake_pair(French, DSRBasicCodedEntry("fra", "IETF4646", "French"))); - Codes->insert(OFMake_pair(French_CA, DSRBasicCodedEntry("fr-CA", "IETF4646", "French (CA)"))); - Codes->insert(OFMake_pair(French_CH, DSRBasicCodedEntry("fr-CH", "IETF4646", "French (CH)"))); - Codes->insert(OFMake_pair(French_FR, DSRBasicCodedEntry("fr-FR", "IETF4646", "French (FR)"))); - Codes->insert(OFMake_pair(German, DSRBasicCodedEntry("deu", "IETF4646", "German"))); - Codes->insert(OFMake_pair(German_AT, DSRBasicCodedEntry("de-AT", "IETF4646", "German (AT)"))); - Codes->insert(OFMake_pair(German_CH, DSRBasicCodedEntry("de-CH", "IETF4646", "German (CH)"))); - Codes->insert(OFMake_pair(German_DE, DSRBasicCodedEntry("de-DE", "IETF4646", "German (DE)"))); + /* and initialize it by adding the coded entries */ + Codes->insert(OFMake_pair(English, DSRBasicCodedEntry("eng", "RFC5646", "English"))); + Codes->insert(OFMake_pair(English_CA, DSRBasicCodedEntry("en-CA", "RFC5646", "English (CA)"))); + Codes->insert(OFMake_pair(English_GB, DSRBasicCodedEntry("en-GB", "RFC5646", "English (GB)"))); + Codes->insert(OFMake_pair(English_US, DSRBasicCodedEntry("en-US", "RFC5646", "English (US)"))); + Codes->insert(OFMake_pair(French, DSRBasicCodedEntry("fra", "RFC5646", "French"))); + Codes->insert(OFMake_pair(French_CA, DSRBasicCodedEntry("fr-CA", "RFC5646", "French (CA)"))); + Codes->insert(OFMake_pair(French_CH, DSRBasicCodedEntry("fr-CH", "RFC5646", "French (CH)"))); + Codes->insert(OFMake_pair(French_FR, DSRBasicCodedEntry("fr-FR", "RFC5646", "French (FR)"))); + Codes->insert(OFMake_pair(German, DSRBasicCodedEntry("deu", "RFC5646", "German"))); + Codes->insert(OFMake_pair(German_AT, DSRBasicCodedEntry("de-AT", "RFC5646", "German (AT)"))); + Codes->insert(OFMake_pair(German_CH, DSRBasicCodedEntry("de-CH", "RFC5646", "German (CH)"))); + Codes->insert(OFMake_pair(German_DE, DSRBasicCodedEntry("de-DE", "RFC5646", "German (DE)"))); } /* should never be NULL */ return *Codes; diff --git a/dcmsr/libcmr/cid6147.cc b/dcmsr/libcmr/cid6147.cc index 14cdec85..fa595266 100644 --- a/dcmsr/libcmr/cid6147.cc +++ b/dcmsr/libcmr/cid6147.cc @@ -5,8 +5,8 @@ * * Source file for class CID6147_ResponseCriteria * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:45 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:55 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7021.cc b/dcmsr/libcmr/cid7021.cc index 7680f033..b9f1ecc8 100644 --- a/dcmsr/libcmr/cid7021.cc +++ b/dcmsr/libcmr/cid7021.cc @@ -5,8 +5,8 @@ * * Source file for class CID7021_MeasurementReportDocumentTitles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:47 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:56 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7181.cc b/dcmsr/libcmr/cid7181.cc index baf67636..803e7a9b 100644 --- a/dcmsr/libcmr/cid7181.cc +++ b/dcmsr/libcmr/cid7181.cc @@ -5,8 +5,8 @@ * * Source file for class CID7181_AbstractMultiDimensionalImageModelComponentUnits * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:49 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:38:58 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7445.cc b/dcmsr/libcmr/cid7445.cc index 035cdb50..2d6a5973 100644 --- a/dcmsr/libcmr/cid7445.cc +++ b/dcmsr/libcmr/cid7445.cc @@ -5,8 +5,8 @@ * * Source file for class CID7445_DeviceParticipatingRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:51 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:00 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7452.cc b/dcmsr/libcmr/cid7452.cc index a54cbfdc..ec2c2b6a 100644 --- a/dcmsr/libcmr/cid7452.cc +++ b/dcmsr/libcmr/cid7452.cc @@ -5,8 +5,8 @@ * * Source file for class CID7452_OrganizationalRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:53 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:02 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7453.cc b/dcmsr/libcmr/cid7453.cc index 2d748744..e824c50a 100644 --- a/dcmsr/libcmr/cid7453.cc +++ b/dcmsr/libcmr/cid7453.cc @@ -5,8 +5,8 @@ * * Source file for class CID7453_PerformingRoles * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:55 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:03 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7464.cc b/dcmsr/libcmr/cid7464.cc index f0dd006f..c66e215f 100644 --- a/dcmsr/libcmr/cid7464.cc +++ b/dcmsr/libcmr/cid7464.cc @@ -5,8 +5,8 @@ * * Source file for class CID7464_GeneralRegionOfInterestMeasurementModifiers * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:57 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:05 by J. Riesmeier * */ diff --git a/dcmsr/libcmr/cid7469.cc b/dcmsr/libcmr/cid7469.cc index e41b27cd..7b494490 100644 --- a/dcmsr/libcmr/cid7469.cc +++ b/dcmsr/libcmr/cid7469.cc @@ -5,8 +5,8 @@ * * Source file for class CID7469_GenericIntensityAndSizeMeasurements * - * Generated automatically from DICOM PS 3.16-2016b - * File created on 2016-04-06 16:26:59 by J. Riesmeier + * Generated automatically from DICOM PS 3.16-2016d + * File created on 2016-10-04 12:39:07 by J. Riesmeier * */ diff --git a/dcmsr/libsrc/dsrdoc.cc b/dcmsr/libsrc/dsrdoc.cc index 00f2abef..abaf4bc8 100644 --- a/dcmsr/libsrc/dsrdoc.cc +++ b/dcmsr/libsrc/dsrdoc.cc @@ -910,14 +910,20 @@ OFCondition DSRDocument::readXMLPatientData(const DSRXMLDocument &doc, OFCondition DSRDocument::readXMLStudyData(const DSRXMLDocument &doc, DSRXMLCursor cursor, - const size_t /*flags*/) + const size_t flags) { OFCondition result = SR_EC_InvalidDocument; if (cursor.valid()) { OFString tmpString; /* get Study Instance UID from XML attribute */ - result = doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid"); + if (flags & XF_acceptEmptyStudySeriesInstanceUID) + { + if (doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad()) + doc.printMissingAttributeWarning(cursor, "uid"); + result = EC_Normal; + } else + result = doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid"); /* goto first sub-element */ cursor.gotoChild(); /* iterate over all nodes */ @@ -956,14 +962,20 @@ OFCondition DSRDocument::readXMLStudyData(const DSRXMLDocument &doc, OFCondition DSRDocument::readXMLSeriesData(const DSRXMLDocument &doc, DSRXMLCursor cursor, - const size_t /*flags*/) + const size_t flags) { OFCondition result = SR_EC_InvalidDocument; if (cursor.valid()) { OFString tmpString; /* get Series Instance UID from XML attribute */ - result = doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid"); + if (flags & XF_acceptEmptyStudySeriesInstanceUID) + { + if (doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad()) + doc.printMissingAttributeWarning(cursor, "uid"); + result = EC_Normal; + } else + result = doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid"); /* goto first sub-element */ cursor.gotoChild(); /* iterate over all nodes */ @@ -999,14 +1011,20 @@ OFCondition DSRDocument::readXMLSeriesData(const DSRXMLDocument &doc, OFCondition DSRDocument::readXMLInstanceData(const DSRXMLDocument &doc, DSRXMLCursor cursor, - const size_t /*flags*/) + const size_t flags) { OFCondition result = SR_EC_InvalidDocument; if (cursor.valid()) { OFString tmpString; /* get SOP Instance UID from XML attribute */ - result = doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid"); + if (flags & XF_acceptEmptyStudySeriesInstanceUID) + { + if (doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad()) + doc.printMissingAttributeWarning(cursor, "uid"); + result = EC_Normal; + } else + result = doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid"); /* goto first sub-element */ cursor.gotoChild(); /* iterate over all nodes */ @@ -1539,7 +1557,7 @@ OFCondition DSRDocument::renderHTML(STD_NAMESPACE ostream &stream, /* used for HTML tmpString conversion */ OFString htmlString; /* update only some DICOM attributes */ - updateAttributes(OFFalse /* updateAll */); + updateAttributes(OFFalse /*updateAll*/); // --- HTML/XHTML document structure (start) --- @@ -2831,6 +2849,7 @@ OFCondition DSRDocument::finalizeDocument() void DSRDocument::updateAttributes(const OFBool updateAll) { + DCMSR_DEBUG("Updating " << (updateAll ? "all " : "") << "DICOM header attributes"); const E_DocumentType documentType = getDocumentType(); /* retrieve SOP class UID from internal document type */ SOPClassUID.putString(documentTypeToSOPClassUID(documentType)); @@ -2849,6 +2868,7 @@ void DSRDocument::updateAttributes(const OFBool updateAll) /* create new SOP instance UID if required */ if (SOPInstanceUID.isEmpty()) { + DCMSR_DEBUG(" Generating new value for SOP Instance UID"); OFString tmpString; SOPInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT)); /* set instance creation date to current date (YYYYMMDD) */ @@ -2860,10 +2880,16 @@ void DSRDocument::updateAttributes(const OFBool updateAll) } /* create new study instance UID if required */ if (StudyInstanceUID.isEmpty()) + { + DCMSR_DEBUG(" Generating new value for Study Instance UID"); StudyInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT)); + } /* create new series instance UID if required */ if (SeriesInstanceUID.isEmpty()) + { + DCMSR_DEBUG(" Generating new value for Series Instance UID"); SeriesInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT)); + } /* check and set content date if required */ if (ContentDate.isEmpty()) diff --git a/dcmsr/libsrc/dsrtypes.cc b/dcmsr/libsrc/dsrtypes.cc index 19a4d499..0bebd999 100644 --- a/dcmsr/libsrc/dsrtypes.cc +++ b/dcmsr/libsrc/dsrtypes.cc @@ -74,96 +74,97 @@ *---------------------------------*/ /* read flags */ -const size_t DSRTypes::RF_readDigitalSignatures = 1 << 0; -const size_t DSRTypes::RF_acceptUnknownRelationshipType = 1 << 1; -const size_t DSRTypes::RF_acceptInvalidContentItemValue = 1 << 2; -const size_t DSRTypes::RF_ignoreRelationshipConstraints = 1 << 3; -const size_t DSRTypes::RF_ignoreContentItemErrors = 1 << 4; -const size_t DSRTypes::RF_skipInvalidContentItems = 1 << 5; -const size_t DSRTypes::RF_showCurrentlyProcessedItem = 1 << 6; +const size_t DSRTypes::RF_readDigitalSignatures = 1 << 0; +const size_t DSRTypes::RF_acceptUnknownRelationshipType = 1 << 1; +const size_t DSRTypes::RF_acceptInvalidContentItemValue = 1 << 2; +const size_t DSRTypes::RF_ignoreRelationshipConstraints = 1 << 3; +const size_t DSRTypes::RF_ignoreContentItemErrors = 1 << 4; +const size_t DSRTypes::RF_skipInvalidContentItems = 1 << 5; +const size_t DSRTypes::RF_showCurrentlyProcessedItem = 1 << 6; /* renderHTML flags */ -const size_t DSRTypes::HF_neverExpandChildrenInline = 1 << 0; -const size_t DSRTypes::HF_alwaysExpandChildrenInline = 1 << 1; -const size_t DSRTypes::HF_renderInlineCodes = 1 << 2; -const size_t DSRTypes::HF_useCodeDetailsTooltip = 1 << 3; -const size_t DSRTypes::HF_renderConceptNameCodes = 1 << 4; -const size_t DSRTypes::HF_renderNumericUnitCodes = 1 << 5; -const size_t DSRTypes::HF_useCodeMeaningAsUnit = 1 << 6; -const size_t DSRTypes::HF_renderPatientTitle = 1 << 7; -const size_t DSRTypes::HF_renderNoDocumentHeader = 1 << 8; -const size_t DSRTypes::HF_renderDcmtkFootnote = 1 << 9; -const size_t DSRTypes::HF_renderFullData = 1 << 10; -const size_t DSRTypes::HF_renderSectionTitlesInline = 1 << 11; -const size_t DSRTypes::HF_copyStyleSheetContent = 1 << 12; -const size_t DSRTypes::HF_HTML32Compatibility = 1 << 13; -const size_t DSRTypes::HF_XHTML11Compatibility = 1 << 14; -const size_t DSRTypes::HF_addDocumentTypeReference = 1 << 15; -const size_t DSRTypes::HF_omitGeneratorMetaElement = 1 << 16; +const size_t DSRTypes::HF_neverExpandChildrenInline = 1 << 0; +const size_t DSRTypes::HF_alwaysExpandChildrenInline = 1 << 1; +const size_t DSRTypes::HF_renderInlineCodes = 1 << 2; +const size_t DSRTypes::HF_useCodeDetailsTooltip = 1 << 3; +const size_t DSRTypes::HF_renderConceptNameCodes = 1 << 4; +const size_t DSRTypes::HF_renderNumericUnitCodes = 1 << 5; +const size_t DSRTypes::HF_useCodeMeaningAsUnit = 1 << 6; +const size_t DSRTypes::HF_renderPatientTitle = 1 << 7; +const size_t DSRTypes::HF_renderNoDocumentHeader = 1 << 8; +const size_t DSRTypes::HF_renderDcmtkFootnote = 1 << 9; +const size_t DSRTypes::HF_renderFullData = 1 << 10; +const size_t DSRTypes::HF_renderSectionTitlesInline = 1 << 11; +const size_t DSRTypes::HF_copyStyleSheetContent = 1 << 12; +const size_t DSRTypes::HF_HTML32Compatibility = 1 << 13; +const size_t DSRTypes::HF_XHTML11Compatibility = 1 << 14; +const size_t DSRTypes::HF_addDocumentTypeReference = 1 << 15; +const size_t DSRTypes::HF_omitGeneratorMetaElement = 1 << 16; /* internal */ -const size_t DSRTypes::HF_renderItemsSeparately = 1 << 17; -const size_t DSRTypes::HF_renderItemInline = 1 << 18; -const size_t DSRTypes::HF_currentlyInsideAnnex = 1 << 19; -const size_t DSRTypes::HF_createFootnoteReferences = 1 << 20; -const size_t DSRTypes::HF_convertNonASCIICharacters = 1 << 21; +const size_t DSRTypes::HF_renderItemsSeparately = 1 << 17; +const size_t DSRTypes::HF_renderItemInline = 1 << 18; +const size_t DSRTypes::HF_currentlyInsideAnnex = 1 << 19; +const size_t DSRTypes::HF_createFootnoteReferences = 1 << 20; +const size_t DSRTypes::HF_convertNonASCIICharacters = 1 << 21; /* shortcuts */ -const size_t DSRTypes::HF_renderAllCodes = DSRTypes::HF_renderInlineCodes | - DSRTypes::HF_renderConceptNameCodes | - DSRTypes::HF_renderNumericUnitCodes; -const size_t DSRTypes::HF_internalUseOnly = DSRTypes::HF_renderItemsSeparately | - DSRTypes::HF_renderItemInline | - DSRTypes::HF_currentlyInsideAnnex | - DSRTypes::HF_createFootnoteReferences | - DSRTypes::HF_convertNonASCIICharacters; +const size_t DSRTypes::HF_renderAllCodes = DSRTypes::HF_renderInlineCodes | + DSRTypes::HF_renderConceptNameCodes | + DSRTypes::HF_renderNumericUnitCodes; +const size_t DSRTypes::HF_internalUseOnly = DSRTypes::HF_renderItemsSeparately | + DSRTypes::HF_renderItemInline | + DSRTypes::HF_currentlyInsideAnnex | + DSRTypes::HF_createFootnoteReferences | + DSRTypes::HF_convertNonASCIICharacters; /* read/writeXML flags */ -const size_t DSRTypes::XF_writeEmptyTags = 1 << 0; -const size_t DSRTypes::XF_writeTemplateIdentification = 1 << 1; -const size_t DSRTypes::XF_alwaysWriteItemIdentifier = 1 << 2; -const size_t DSRTypes::XF_codeComponentsAsAttribute = 1 << 3; -const size_t DSRTypes::XF_relationshipTypeAsAttribute = 1 << 4; -const size_t DSRTypes::XF_valueTypeAsAttribute = 1 << 5; -const size_t DSRTypes::XF_templateIdentifierAsAttribute = 1 << 6; -const size_t DSRTypes::XF_useDcmsrNamespace = 1 << 7; -const size_t DSRTypes::XF_addSchemaReference = 1 << 8; -const size_t DSRTypes::XF_validateSchema = 1 << 9; -const size_t DSRTypes::XF_templateElementEnclosesItems = 1 << 10; -const size_t DSRTypes::XF_addCommentsForIncludedTemplate = 1 << 11; +const size_t DSRTypes::XF_writeEmptyTags = 1 << 0; +const size_t DSRTypes::XF_writeTemplateIdentification = 1 << 1; +const size_t DSRTypes::XF_alwaysWriteItemIdentifier = 1 << 2; +const size_t DSRTypes::XF_codeComponentsAsAttribute = 1 << 3; +const size_t DSRTypes::XF_relationshipTypeAsAttribute = 1 << 4; +const size_t DSRTypes::XF_valueTypeAsAttribute = 1 << 5; +const size_t DSRTypes::XF_templateIdentifierAsAttribute = 1 << 6; +const size_t DSRTypes::XF_useDcmsrNamespace = 1 << 7; +const size_t DSRTypes::XF_addSchemaReference = 1 << 8; +const size_t DSRTypes::XF_validateSchema = 1 << 9; +const size_t DSRTypes::XF_templateElementEnclosesItems = 1 << 10; +const size_t DSRTypes::XF_addCommentsForIncludedTemplate = 1 << 11; +const size_t DSRTypes::XF_acceptEmptyStudySeriesInstanceUID = 1 << 12; /* shortcuts */ -const size_t DSRTypes::XF_encodeEverythingAsAttribute = DSRTypes::XF_codeComponentsAsAttribute | - DSRTypes::XF_relationshipTypeAsAttribute | - DSRTypes::XF_valueTypeAsAttribute | - DSRTypes::XF_templateIdentifierAsAttribute; +const size_t DSRTypes::XF_encodeEverythingAsAttribute = DSRTypes::XF_codeComponentsAsAttribute | + DSRTypes::XF_relationshipTypeAsAttribute | + DSRTypes::XF_valueTypeAsAttribute | + DSRTypes::XF_templateIdentifierAsAttribute; /* print flags */ -const size_t DSRTypes::PF_printItemPosition = 1 << 0; -const size_t DSRTypes::PF_shortenLongItemValues = 1 << 1; -const size_t DSRTypes::PF_printSOPInstanceUID = 1 << 2; -const size_t DSRTypes::PF_printConceptNameCodes = 1 << 3; -const size_t DSRTypes::PF_printNoDocumentHeader = 1 << 4; -const size_t DSRTypes::PF_printTemplateIdentification = 1 << 5; -const size_t DSRTypes::PF_useANSIEscapeCodes = 1 << 6; -const size_t DSRTypes::PF_printLongSOPClassName = 1 << 7; -const size_t DSRTypes::PF_printSOPClassUID = 1 << 8; -const size_t DSRTypes::PF_printInvalidCodes = 1 << 9; -const size_t DSRTypes::PF_printNodeID = 1 << 10; -const size_t DSRTypes::PF_indicateEnhancedEncodingMode = 1 << 11; -const size_t DSRTypes::PF_printAnnotation = 1 << 12; -const size_t DSRTypes::PF_hideIncludedTemplateNodes = 1 << 13; -const size_t DSRTypes::PF_dontCountIncludedTemplateNodes = 1 << 14; +const size_t DSRTypes::PF_printItemPosition = 1 << 0; +const size_t DSRTypes::PF_shortenLongItemValues = 1 << 1; +const size_t DSRTypes::PF_printSOPInstanceUID = 1 << 2; +const size_t DSRTypes::PF_printConceptNameCodes = 1 << 3; +const size_t DSRTypes::PF_printNoDocumentHeader = 1 << 4; +const size_t DSRTypes::PF_printTemplateIdentification = 1 << 5; +const size_t DSRTypes::PF_useANSIEscapeCodes = 1 << 6; +const size_t DSRTypes::PF_printLongSOPClassName = 1 << 7; +const size_t DSRTypes::PF_printSOPClassUID = 1 << 8; +const size_t DSRTypes::PF_printInvalidCodes = 1 << 9; +const size_t DSRTypes::PF_printNodeID = 1 << 10; +const size_t DSRTypes::PF_indicateEnhancedEncodingMode = 1 << 11; +const size_t DSRTypes::PF_printAnnotation = 1 << 12; +const size_t DSRTypes::PF_hideIncludedTemplateNodes = 1 << 13; +const size_t DSRTypes::PF_dontCountIncludedTemplateNodes = 1 << 14; /* shortcuts */ -const size_t DSRTypes::PF_printAllCodes = DSRTypes::PF_printConceptNameCodes; +const size_t DSRTypes::PF_printAllCodes = DSRTypes::PF_printConceptNameCodes; /* checkByReferenceRelationships modes */ -const size_t DSRTypes::CM_updatePositionString = 1 << 0; -const size_t DSRTypes::CM_updateNodeID = 1 << 1; -const size_t DSRTypes::CM_resetReferenceTargetFlag = 1 << 2; +const size_t DSRTypes::CM_updatePositionString = 1 << 0; +const size_t DSRTypes::CM_updateNodeID = 1 << 1; +const size_t DSRTypes::CM_resetReferenceTargetFlag = 1 << 2; /* checkByReferenceRelationships bit masks (avoid conflicts!) */ -const size_t DSRTypes::CB_maskPrintFlags = DSRTypes::PF_dontCountIncludedTemplateNodes; -const size_t DSRTypes::CB_maskReadFlags = DSRTypes::RF_acceptUnknownRelationshipType | - DSRTypes::RF_ignoreRelationshipConstraints | - DSRTypes::RF_showCurrentlyProcessedItem; +const size_t DSRTypes::CB_maskPrintFlags = DSRTypes::PF_dontCountIncludedTemplateNodes; +const size_t DSRTypes::CB_maskReadFlags = DSRTypes::RF_acceptUnknownRelationshipType | + DSRTypes::RF_ignoreRelationshipConstraints | + DSRTypes::RF_showCurrentlyProcessedItem; /*---------------------* diff --git a/dcmsr/libsrc/dsrxmld.cc b/dcmsr/libsrc/dsrxmld.cc index 23658cec..55c96900 100644 --- a/dcmsr/libsrc/dsrxmld.cc +++ b/dcmsr/libsrc/dsrxmld.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2003-2014, OFFIS e.V. + * Copyright (C) 2003-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -684,11 +684,24 @@ DSRTypes::E_RelationshipType DSRXMLDocument::getRelationshipTypeFromNode(const D void DSRXMLDocument::printUnexpectedNodeWarning(const DSRXMLCursor &cursor) const { + /* report warning message */ OFString tmpString; DCMSR_WARN("Unexpected node '" << getFullNodePath(cursor, tmpString) << "', skipping"); } +void DSRXMLDocument::printMissingAttributeWarning(const DSRXMLCursor &cursor, + const char *name) const +{ + /* report warning message */ + if (name != NULL) + { + OFString tmpString; + DCMSR_WARN("XML attribute '" << name << "' missing/empty in " << getFullNodePath(cursor, tmpString)); + } +} + + void DSRXMLDocument::printMissingAttributeError(const DSRXMLCursor &cursor, const char *name) const { diff --git a/dcmsr/tests/CMakeLists.txt b/dcmsr/tests/CMakeLists.txt index e1ea238a..fcbf1f57 100644 --- a/dcmsr/tests/CMakeLists.txt +++ b/dcmsr/tests/CMakeLists.txt @@ -1,6 +1,6 @@ # declare executables DCMTK_ADD_EXECUTABLE(mkreport mkreport) -DCMTK_ADD_EXECUTABLE(dcmsr_tests tests tsrtree tsrdoctr tsrdoc tsrcodvl tsrnumvl tsrtpl tsrcmr) +DCMTK_ADD_EXECUTABLE(dcmsr_tests tests tsrtree tsrdoctr tsrdoc tsrcodvl tsrnumvl tsrtpl tsrcmr tsrlist) # make sure executables are linked to the corresponding libraries DCMTK_TARGET_LINK_MODULES(mkreport dcmsr dcmimage dcmimgle dcmdata oflog ofstd) diff --git a/dcmsr/tests/Makefile.dep b/dcmsr/tests/Makefile.dep index 21d5734f..c3114bf4 100644 --- a/dcmsr/tests/Makefile.dep +++ b/dcmsr/tests/Makefile.dep @@ -565,6 +565,52 @@ tsrdoctr.o: tsrdoctr.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/dcmsr/dsrtpltn.h ../include/dcmtk/dcmsr/dsrstpl.h \ ../include/dcmtk/dcmsr/dsrnumtn.h ../include/dcmtk/dcmsr/dsrtextn.h \ ../include/dcmtk/dcmsr/dsrstrvl.h +tsrlist.o: tsrlist.cc ../../config/include/dcmtk/config/osconfig.h \ + ../../ofstd/include/dcmtk/ofstd/oftest.h \ + ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ + ../../ofstd/include/dcmtk/ofstd/oftypes.h \ + ../../ofstd/include/dcmtk/ofstd/ofdefine.h \ + ../../ofstd/include/dcmtk/ofstd/ofcast.h \ + ../../ofstd/include/dcmtk/ofstd/ofexport.h \ + ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \ + ../../ofstd/include/dcmtk/ofstd/ofstream.h \ + ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \ + ../../ofstd/include/dcmtk/ofstd/oflist.h \ + ../../ofstd/include/dcmtk/ofstd/ofstring.h \ + ../../ofstd/include/dcmtk/ofstd/ofconsol.h \ + ../../ofstd/include/dcmtk/ofstd/ofthread.h \ + ../../ofstd/include/dcmtk/ofstd/offile.h \ + ../../ofstd/include/dcmtk/ofstd/ofstd.h \ + ../../ofstd/include/dcmtk/ofstd/oftraits.h \ + ../../ofstd/include/dcmtk/ofstd/ofcond.h \ + ../../ofstd/include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \ + ../../oflog/include/dcmtk/oflog/oflog.h \ + ../../oflog/include/dcmtk/oflog/logger.h \ + ../../oflog/include/dcmtk/oflog/config.h \ + ../../oflog/include/dcmtk/oflog/config/defines.h \ + ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \ + ../../oflog/include/dcmtk/oflog/loglevel.h \ + ../../ofstd/include/dcmtk/ofstd/ofvector.h \ + ../../oflog/include/dcmtk/oflog/tstring.h \ + ../../oflog/include/dcmtk/oflog/tchar.h \ + ../../oflog/include/dcmtk/oflog/spi/apndatch.h \ + ../../oflog/include/dcmtk/oflog/appender.h \ + ../../ofstd/include/dcmtk/ofstd/ofaptr.h \ + ../../oflog/include/dcmtk/oflog/layout.h \ + ../../oflog/include/dcmtk/oflog/streams.h \ + ../../oflog/include/dcmtk/oflog/helpers/pointer.h \ + ../../oflog/include/dcmtk/oflog/thread/syncprim.h \ + ../../oflog/include/dcmtk/oflog/spi/filter.h \ + ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \ + ../../oflog/include/dcmtk/oflog/spi/logfact.h \ + ../../oflog/include/dcmtk/oflog/logmacro.h \ + ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \ + ../../oflog/include/dcmtk/oflog/tracelog.h \ + ../include/dcmtk/dcmsr/dsrtlist.h \ + ../../dcmdata/include/dcmtk/dcmdata/dcerror.h tsrnumvl.o: tsrnumvl.cc ../../config/include/dcmtk/config/osconfig.h \ ../../ofstd/include/dcmtk/ofstd/oftest.h \ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \ diff --git a/dcmsr/tests/Makefile.in b/dcmsr/tests/Makefile.in index 8509e6c6..11dd711a 100644 --- a/dcmsr/tests/Makefile.in +++ b/dcmsr/tests/Makefile.in @@ -26,7 +26,8 @@ LIBDIRS = -L$(top_srcdir)/libcmr -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc \ LOCALLIBS = -lcmr -ldcmsr -ldcmimage -ldcmimgle -ldcmdata -loflog -lofstd $(TIFFLIBS) \ $(PNGLIBS) $(XMLLIBS) $(ZLIBLIBS) $(ICONVLIBS) -tstobjs = tests.o tsrtree.o tsrdoctr.o tsrdoc.o tsrcodvl.o tsrnumvl.o tsrtpl.o tsrcmr.o +tstobjs = tests.o tsrtree.o tsrdoctr.o tsrdoc.o tsrcodvl.o tsrnumvl.o tsrtpl.o tsrcmr.o \ + tsrlist.o objs = mkreport.o $(tstobjs) progs = mkreport tests diff --git a/dcmsr/tests/tests.cc b/dcmsr/tests/tests.cc index c6880775..36fd3208 100644 --- a/dcmsr/tests/tests.cc +++ b/dcmsr/tests/tests.cc @@ -23,6 +23,8 @@ #include "dcmtk/ofstd/oftest.h" +OFTEST_REGISTER(dcmsr_addItems); +OFTEST_REGISTER(dcmsr_getItems); OFTEST_REGISTER(dcmsr_addTreeNode_1); OFTEST_REGISTER(dcmsr_addTreeNode_2); OFTEST_REGISTER(dcmsr_addTreeNode_3); diff --git a/dcmsr/tests/tsrlist.cc b/dcmsr/tests/tsrlist.cc new file mode 100644 index 00000000..499ce1c3 --- /dev/null +++ b/dcmsr/tests/tsrlist.cc @@ -0,0 +1,68 @@ +/* + * + * Copyright (C) 2016, J. Riesmeier, Oldenburg, Germany + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation are maintained by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: dcmsr + * + * Author: Joerg Riesmeier + * + * Purpose: + * test program for class DSRListOfItems + * + */ + + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/oftest.h" + +#include "dcmtk/dcmsr/dsrtlist.h" + + +OFTEST(dcmsr_addItems) +{ + // disable test case when building shared libraries because of linker errors +#ifndef DCMTK_SHARED + /* prepare test data */ + OFVector vec; + for (Uint16 i = 0; i < 10; ++i) + vec.push_back(i); + /* add data to list */ + DSRListOfItems lst; + lst.addItems(vec); + /* and check result */ + OFCHECK_EQUAL(lst.getNumberOfItems(), 10); + for (Uint16 j = 0; j < 10; ++j) + OFCHECK_EQUAL(lst.getItem(j + 1), j); + OFCHECK(lst.isElement(7)); + OFCHECK(!lst.isElement(10)); +#endif +} + + +OFTEST(dcmsr_getItems) +{ + // disable test case when building shared libraries because of linker errors +#ifndef DCMTK_SHARED + DSRListOfItems lst; + /* add data to list */ + for (Uint16 i = 0; i < 10; ++i) + lst.addItem(i); + /* and check result */ + OFCHECK_EQUAL(lst.getNumberOfItems(), 10); + OFVector vec; + OFCHECK(lst.getItems(vec).good()); + OFCHECK_EQUAL(vec.size(), 10); + for (Uint16 j = 0; j < 10; ++j) + OFCHECK_EQUAL(vec.at(j), j); +#endif +} diff --git a/dcmtract/docs/dcmtract.dox b/dcmtract/docs/dcmtract.dox index 12566ff8..94d33792 100644 --- a/dcmtract/docs/dcmtract.dox +++ b/dcmtract/docs/dcmtract.dox @@ -1,6 +1,6 @@ /*! -\page mod_dcmtract dcmtract: a library for working with Tractography Results +\page mod_dcmtract dcmtract: a library for working with tractography results This module contains classes to deal with DICOM Tractography Results objects. It is able to create, load and access the contained fiber tracks and the related @@ -22,7 +22,6 @@ Module. The main class of this module is: \li \b TrcTractographyResults - \section Examples The following (complete) example shows how to load a DICOM Tractography Results diff --git a/dcmtract/libsrc/Makefile.dep b/dcmtract/libsrc/Makefile.dep index 16a76376..ff84b2ee 100644 --- a/dcmtract/libsrc/Makefile.dep +++ b/dcmtract/libsrc/Makefile.dep @@ -59,6 +59,8 @@ trcmeasurement.o: trcmeasurement.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -91,11 +93,9 @@ trcmeasurement.o: trcmeasurement.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -183,6 +183,8 @@ trcmodtractresults.o: trcmodtractresults.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -216,11 +218,9 @@ trcmodtractresults.o: trcmodtractresults.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -312,6 +312,8 @@ trcstatistic.o: trcstatistic.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -344,11 +346,9 @@ trcstatistic.o: trcstatistic.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -436,6 +436,8 @@ trctrack.o: trctrack.cc ../../config/include/dcmtk/config/osconfig.h \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -512,6 +514,8 @@ trctrackset.o: trctrackset.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -542,11 +546,9 @@ trctrackset.o: trctrackset.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ @@ -638,6 +640,8 @@ trctractographyresults.o: trctractographyresults.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \ + ../../ofstd/include/dcmtk/ofstd/ofdate.h \ + ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \ ../../ofstd/include/dcmtk/ofstd/ofmap.h \ @@ -668,11 +672,9 @@ trctractographyresults.o: trctractographyresults.cc \ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \ - ../../ofstd/include/dcmtk/ofstd/ofdate.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \ - ../../ofstd/include/dcmtk/ofstd/oftime.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \ diff --git a/docs/CHANGES.361 b/docs/CHANGES.361 index 2d05cde8..1e546b11 100644 --- a/docs/CHANGES.361 +++ b/docs/CHANGES.361 @@ -1,6 +1,1073 @@ Changes between releases are documented here. +**** Changes from 2016.11.02 (schlamelcher) + +- Updated CHANGES.361 for new development snapshot. + Affects: docs/CHANGES.361 + +- Updated DCMTK_ABI_VERSION for new development snapshot. + Affects: CMake/dcmtkPrepare.cmake + +- Updated man pages for new development snapshot. + Affects: doxygen/manpages/man1/dcm2pdf.1 + doxygen/manpages/man1/dcm2pnm.1 + doxygen/manpages/man1/dcm2xml.1 + doxygen/manpages/man1/dcmcjpeg.1 + doxygen/manpages/man1/dcmcjpls.1 + doxygen/manpages/man1/dcmconv.1 + doxygen/manpages/man1/dcmcrle.1 + doxygen/manpages/man1/dcmdjpeg.1 + doxygen/manpages/man1/dcmdjpls.1 + doxygen/manpages/man1/dcmdrle.1 + doxygen/manpages/man1/dcmdspfn.1 + doxygen/manpages/man1/dcmdump.1 + doxygen/manpages/man1/dcmftest.1 + doxygen/manpages/man1/dcmgpdir.1 + doxygen/manpages/man1/dcmj2pnm.1 + doxygen/manpages/man1/dcml2pnm.1 + doxygen/manpages/man1/dcmmkcrv.1 + doxygen/manpages/man1/dcmmkdir.1 + doxygen/manpages/man1/dcmmklut.1 + doxygen/manpages/man1/dcmodify.1 + doxygen/manpages/man1/dcmp2pgm.1 + doxygen/manpages/man1/dcmprscp.1 + doxygen/manpages/man1/dcmprscu.1 + doxygen/manpages/man1/dcmpschk.1 + doxygen/manpages/man1/dcmpsmk.1 + doxygen/manpages/man1/dcmpsprt.1 + doxygen/manpages/man1/dcmpsrcv.1 + doxygen/manpages/man1/dcmpssnd.1 + doxygen/manpages/man1/dcmqridx.1 + doxygen/manpages/man1/dcmqrscp.1 + doxygen/manpages/man1/dcmqrti.1 + doxygen/manpages/man1/dcmquant.1 + doxygen/manpages/man1/dcmrecv.1 + doxygen/manpages/man1/dcmscale.1 + doxygen/manpages/man1/dcmsend.1 + doxygen/manpages/man1/dcmsign.1 + doxygen/manpages/man1/dcod2lum.1 + doxygen/manpages/man1/dconvlum.1 + doxygen/manpages/man1/drtdump.1 + doxygen/manpages/man1/dsr2html.1 + doxygen/manpages/man1/dsr2xml.1 + doxygen/manpages/man1/dsrdump.1 + doxygen/manpages/man1/dump2dcm.1 + doxygen/manpages/man1/echoscu.1 + doxygen/manpages/man1/findscu.1 + doxygen/manpages/man1/getscu.1 + doxygen/manpages/man1/img2dcm.1 + doxygen/manpages/man1/movescu.1 + doxygen/manpages/man1/pdf2dcm.1 + doxygen/manpages/man1/storescp.1 + doxygen/manpages/man1/storescu.1 + doxygen/manpages/man1/termscu.1 + doxygen/manpages/man1/wlmscpfs.1 + doxygen/manpages/man1/xml2dcm.1 + doxygen/manpages/man1/xml2dsr.1 + +- Updated Makefile dependencies. + Affects: ofstd/libsrc/Makefile.dep + +- Added API documentation for OFvariant etc. + Affects: ofstd/include/dcmtk/ofstd/ofutil.h + ofstd/include/dcmtk/ofstd/ofvriant.h + +**** Changes from 2016.11.01 (riesmeier) + +- Added readXML mode that accepts empty/missing UID: + Added new mode to readXML() that accepts empty or missing Study/Series/ + SOP Instance UID values in the input document. This is required if only + some of these three UID values should be re-generated (replaced). Now, + option --generate-new-uids (with --dont-overwrite-uids) works as expected. + Thanks to Martin Wenger for the original + report that resulted in this improvement/fix. + Affects: dcmsr/apps/xml2dsr.cc + dcmsr/include/dcmtk/dcmsr/dsrtypes.h + dcmsr/include/dcmtk/dcmsr/dsrxmld.h + dcmsr/libsrc/dsrdoc.cc + dcmsr/libsrc/dsrtypes.cc + dcmsr/libsrc/dsrxmld.cc + +- Output debug messages when updating attributes: + Output messages to the debug logger when updating DICOM header attributes, + especially when generating new Study / Series / SOP Instance UIDs. + Affects: dcmsr/libsrc/dsrdoc.cc + +- Made clear that options +/-Uo require +Ug: + Now it is checked whether option --generate-new-uids (+Ug) is used when + --overwrite-uids (+Uo) or --dont-overwrite-uids (-Uo) is also specified + on the command line. This should avoid possible confusions. + Affects: dcmdata/apps/xml2dcm.cc + dcmsr/apps/xml2dsr.cc + +**** Changes from 2016.10.31 (schlamelcher) + +- Added OFvariant implementation for C++11: + Closes DCMTK bug #693. + Affects: dcmiod/include/dcmtk/dcmiod/iodimage.h + dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h + ofstd/include/dcmtk/ofstd/ofutil.h + ofstd/include/dcmtk/ofstd/ofvriant.h + +**** Changes from 2016.10.30 (schlamelcher) + +- Fixed a problem with a previous commit: + A line in a previous commit was truncated, leading to compiler errors. + Affects: dcmpstat/libsrc/dviface.cc + +**** Changes from 2016.10.28 (schlamelcher) + +- Fixed using third party libraries with MinGW: + Modified 3rdparty.cmake such that MinGW is handled the same as Unix like + systems regarding the integration of third party libraries. + Affects: CMake/3rdparty.cmake + +- Fixed 32 vs. 64 bit problem in dcmqrdb: + Fixed incompatibility of dcmqrdb databases between 32 bit and 64 bit code on + the same platform. Don't forget to re-create your databases using dcmqridx. + Affects: dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h + +- Several fixes for dcmpstat: + Fixed detecting structured reporting objects based on the SOP class. + Fixed print job execution and cleanup. Print job executing was bugged when + the name of one print job was a prefix to the name of another print job. + Fixed deadlock in instanceReviewed() regarding database access. + Fixed opening files named using non ASCII characters (only relevant on + Windows). + Affects: dcmpstat/apps/dcmprscu.cc + dcmpstat/libsrc/dviface.cc + dcmpstat/libsrc/dvpshlp.cc + +- Fixed wrong usage of checkStringValue() in dcmpmap: + Fixed passing the attribute type to checkStringValue() where the value multi- + plicity is expected. + Affects: dcmpmap/libsrc/dpmmodparametricmapimage.cc + +**** Changes from 2016.10.12 (riesmeier) + +- Added comment on recently added DICOM attributes: + Added comment on DICOM attributes that were recently added to the DICOM + standard but which are not (yet) supported by the "dcmsr" module. + As usual, these "things to be done" can be found by searching for "tbd:" + in the source code of this module. + Affects: dcmsr/include/dcmtk/dcmsr/dsrcodvl.h + dcmsr/include/dcmtk/dcmsr/dsrdoc.h + +- Updated "dcmrt" classes based on DICOM 2016d: + Updated automatically generated IOD and sequence C++ classes for the various + RT objects based on the current edition of the DICOM standard (2016d). + Added: dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h + dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h + dcmrt/include/dcmtk/dcmrt/seq/drtddps.h + dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtmris.h + dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h + dcmrt/include/dcmtk/dcmrt/seq/drtscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsins.h + dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h + dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtudis.h + dcmrt/libsrc/drtcgis.cc + dcmrt/libsrc/drtdddps.cc + dcmrt/libsrc/drtddps.cc + dcmrt/libsrc/drtgpis.cc + dcmrt/libsrc/drtmris.cc + dcmrt/libsrc/drtpdeds.cc + dcmrt/libsrc/drtscs.cc + dcmrt/libsrc/drtsins.cc + dcmrt/libsrc/drtspgis.cc + dcmrt/libsrc/drtsptcs.cc + dcmrt/libsrc/drtssrcs.cc + dcmrt/libsrc/drtsss.cc + dcmrt/libsrc/drtudis.cc + Removed: dcmrt/include/dcmtk/dcmrt/seq/drtarics.h + dcmrt/libsrc/drtarics.cc + Affects: dcmrt/apps/Makefile.dep + dcmrt/include/dcmtk/dcmrt/drtdose.h + dcmrt/include/dcmtk/dcmrt/drtimage.h + dcmrt/include/dcmtk/dcmrt/drtionpl.h + dcmrt/include/dcmtk/dcmrt/drtiontr.h + dcmrt/include/dcmtk/dcmrt/drtplan.h + dcmrt/include/dcmtk/dcmrt/drtstrct.h + dcmrt/include/dcmtk/dcmrt/drttreat.h + dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtads.h + dcmrt/include/dcmtk/dcmrt/seq/drtafs.h + dcmrt/include/dcmtk/dcmrt/seq/drtags.h + dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtas1.h + dcmrt/include/dcmtk/dcmrt/seq/drtas5.h + dcmrt/include/dcmtk/dcmrt/seq/drtas6.h + dcmrt/include/dcmtk/dcmrt/seq/drtas7.h + dcmrt/include/dcmtk/dcmrt/seq/drtass.h + dcmrt/include/dcmtk/dcmrt/seq/drtbads.h + dcmrt/include/dcmtk/dcmrt/seq/drtbas.h + dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h + dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h + dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h + dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbs.h + dcmrt/include/dcmtk/dcmrt/seq/drtbss.h + dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h + dcmrt/include/dcmtk/dcmrt/seq/drtccs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h + dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtces.h + dcmrt/include/dcmtk/dcmrt/seq/drtchs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcims.h + dcmrt/include/dcmtk/dcmrt/seq/drtcis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcos.h + dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h + dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h + dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtcss.h + dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdias.h + dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtds.h + dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdss.h + dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h + dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h + dcmrt/include/dcmtk/dcmrt/seq/drteas.h + dcmrt/include/dcmtk/dcmrt/seq/drtecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtes.h + dcmrt/include/dcmtk/dcmrt/seq/drtfds.h + dcmrt/include/dcmtk/dcmrt/seq/drtfes.h + dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h + dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h + dcmrt/include/dcmtk/dcmrt/seq/drtfms.h + dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtgas.h + dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtiais.h + dcmrt/include/dcmtk/dcmrt/seq/drtians.h + dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h + dcmrt/include/dcmtk/dcmrt/seq/drtibls.h + dcmrt/include/dcmtk/dcmrt/seq/drtibs.h + dcmrt/include/dcmtk/dcmrt/seq/drticpds.h + dcmrt/include/dcmtk/dcmrt/seq/drticps.h + dcmrt/include/dcmtk/dcmrt/seq/drtics.h + dcmrt/include/dcmtk/dcmrt/seq/drtiis.h + dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h + dcmrt/include/dcmtk/dcmrt/seq/drtircs.h + dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h + dcmrt/include/dcmtk/dcmrt/seq/drtitts.h + dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h + dcmrt/include/dcmtk/dcmrt/seq/drtiws.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h + dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h + dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h + dcmrt/include/dcmtk/dcmrt/seq/drtmas.h + dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtmls.h + dcmrt/include/dcmtk/dcmrt/seq/drtmps.h + dcmrt/include/dcmtk/dcmrt/seq/drtmss.h + dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h + dcmrt/include/dcmtk/dcmrt/seq/drtoas.h + dcmrt/include/dcmtk/dcmrt/seq/drtois.h + dcmrt/include/dcmtk/dcmrt/seq/drtopis.h + dcmrt/include/dcmtk/dcmrt/seq/drtos.h + dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h + dcmrt/include/dcmtk/dcmrt/seq/drtpics.h + dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtporis.h + dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h + dcmrt/include/dcmtk/dcmrt/seq/drtpss.h + dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h + dcmrt/include/dcmtk/dcmrt/seq/drtqds.h + dcmrt/include/dcmtk/dcmrt/seq/drtras.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h + dcmrt/include/dcmtk/dcmrt/seq/drtrds.h + dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h + dcmrt/include/dcmtk/dcmrt/seq/drtrics.h + dcmrt/include/dcmtk/dcmrt/seq/drtrims.h + dcmrt/include/dcmtk/dcmrt/seq/drtris.h + dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrms.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h + dcmrt/include/dcmtk/dcmrt/seq/drtrros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h + dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h + dcmrt/include/dcmtk/dcmrt/seq/drtrses.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h + dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtrss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h + dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h + dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h + dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h + dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h + dcmrt/include/dcmtk/dcmrt/seq/drtrws.h + dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h + dcmrt/include/dcmtk/dcmrt/seq/drtscris.h + dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtsds.h + dcmrt/include/dcmtk/dcmrt/seq/drtshds.h + dcmrt/include/dcmtk/dcmrt/seq/drtsis.h + dcmrt/include/dcmtk/dcmrt/seq/drtsns.h + dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h + dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h + dcmrt/include/dcmtk/dcmrt/seq/drtss.h + dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h + dcmrt/include/dcmtk/dcmrt/seq/drttms0.h + dcmrt/include/dcmtk/dcmrt/seq/drttms9.h + dcmrt/include/dcmtk/dcmrt/seq/drttscds.h + dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h + dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h + dcmrt/include/dcmtk/dcmrt/seq/drttts.h + dcmrt/include/dcmtk/dcmrt/seq/drtvls.h + dcmrt/include/dcmtk/dcmrt/seq/drtwps.h + dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h + dcmrt/include/dcmtk/dcmrt/seq/drtws.h + dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h + dcmrt/libsrc/CMakeLists.txt + dcmrt/libsrc/Makefile.dep + dcmrt/libsrc/Makefile.in + dcmrt/libsrc/drtaadcs.cc + dcmrt/libsrc/drtadcs.cc + dcmrt/libsrc/drtads.cc + dcmrt/libsrc/drtafs.cc + dcmrt/libsrc/drtags.cc + dcmrt/libsrc/drtajcs.cc + dcmrt/libsrc/drtas1.cc + dcmrt/libsrc/drtas5.cc + dcmrt/libsrc/drtas6.cc + dcmrt/libsrc/drtas7.cc + dcmrt/libsrc/drtass.cc + dcmrt/libsrc/drtbads.cc + dcmrt/libsrc/drtbas.cc + dcmrt/libsrc/drtbcps.cc + dcmrt/libsrc/drtbl2.cc + dcmrt/libsrc/drtbl5.cc + dcmrt/libsrc/drtbldls.cc + dcmrt/libsrc/drtbldps.cc + dcmrt/libsrc/drtblds1.cc + dcmrt/libsrc/drtblds5.cc + dcmrt/libsrc/drtblds6.cc + dcmrt/libsrc/drtbldts.cc + dcmrt/libsrc/drtbrcss.cc + dcmrt/libsrc/drtbrdrs.cc + dcmrt/libsrc/drtbrs.cc + dcmrt/libsrc/drtbs.cc + dcmrt/libsrc/drtbss.cc + dcmrt/libsrc/drtbvcps.cc + dcmrt/libsrc/drtcbars.cc + dcmrt/libsrc/drtccs.cc + dcmrt/libsrc/drtcctus.cc + dcmrt/libsrc/drtcdrs.cc + dcmrt/libsrc/drtces.cc + dcmrt/libsrc/drtchs.cc + dcmrt/libsrc/drtcims.cc + dcmrt/libsrc/drtcis.cc + dcmrt/libsrc/drtcncs.cc + dcmrt/libsrc/drtcos.cc + dcmrt/libsrc/drtcpas.cc + dcmrt/libsrc/drtcpis.cc + dcmrt/libsrc/drtcps.cc + dcmrt/libsrc/drtcs.cc + dcmrt/libsrc/drtcsas.cc + dcmrt/libsrc/drtcshs.cc + dcmrt/libsrc/drtcsis.cc + dcmrt/libsrc/drtcss.cc + dcmrt/libsrc/drtdcs.cc + dcmrt/libsrc/drtdias.cc + dcmrt/libsrc/drtdimcs.cc + dcmrt/libsrc/drtdimrs.cc + dcmrt/libsrc/drtdirs.cc + dcmrt/libsrc/drtdose.cc + dcmrt/libsrc/drtdrs.cc + dcmrt/libsrc/drtds.cc + dcmrt/libsrc/drtdspcs.cc + dcmrt/libsrc/drtdss.cc + dcmrt/libsrc/drtdvhs.cc + dcmrt/libsrc/drtdvrrs.cc + dcmrt/libsrc/drteas.cc + dcmrt/libsrc/drtecs.cc + dcmrt/libsrc/drtes.cc + dcmrt/libsrc/drtfds.cc + dcmrt/libsrc/drtfes.cc + dcmrt/libsrc/drtfgs.cc + dcmrt/libsrc/drtfgss.cc + dcmrt/libsrc/drtfms.cc + dcmrt/libsrc/drtfsss.cc + dcmrt/libsrc/drtgas.cc + dcmrt/libsrc/drthsdrs.cc + dcmrt/libsrc/drtiais.cc + dcmrt/libsrc/drtians.cc + dcmrt/libsrc/drtiblds.cc + dcmrt/libsrc/drtibls.cc + dcmrt/libsrc/drtibs.cc + dcmrt/libsrc/drticpds.cc + dcmrt/libsrc/drticps.cc + dcmrt/libsrc/drtics.cc + dcmrt/libsrc/drtiis.cc + dcmrt/libsrc/drtimage.cc + dcmrt/libsrc/drtionpl.cc + dcmrt/libsrc/drtiontr.cc + dcmrt/libsrc/drtipiqs.cc + dcmrt/libsrc/drtircs.cc + dcmrt/libsrc/drtiseis.cc + dcmrt/libsrc/drtitts.cc + dcmrt/libsrc/drtiwps.cc + dcmrt/libsrc/drtiws.cc + dcmrt/libsrc/drtlsds.cc + dcmrt/libsrc/drtlsds6.cc + dcmrt/libsrc/drtlsds7.cc + dcmrt/libsrc/drtmacds.cc + dcmrt/libsrc/drtmas.cc + dcmrt/libsrc/drtmdrs.cc + dcmrt/libsrc/drtmls.cc + dcmrt/libsrc/drtmps.cc + dcmrt/libsrc/drtmss.cc + dcmrt/libsrc/drtmucs.cc + dcmrt/libsrc/drtoas.cc + dcmrt/libsrc/drtois.cc + dcmrt/libsrc/drtopis.cc + dcmrt/libsrc/drtos.cc + dcmrt/libsrc/drtpbcs.cc + dcmrt/libsrc/drtpcs.cc + dcmrt/libsrc/drtpcxs.cc + dcmrt/libsrc/drtpdecs.cc + dcmrt/libsrc/drtpfms.cc + dcmrt/libsrc/drtpics.cc + dcmrt/libsrc/drtplan.cc + dcmrt/libsrc/drtporcs.cc + dcmrt/libsrc/drtporis.cc + dcmrt/libsrc/drtppcs.cc + dcmrt/libsrc/drtprsis.cc + dcmrt/libsrc/drtpscs.cc + dcmrt/libsrc/drtpsics.cc + dcmrt/libsrc/drtpss.cc + dcmrt/libsrc/drtpsss.cc + dcmrt/libsrc/drtpvis.cc + dcmrt/libsrc/drtqds.cc + dcmrt/libsrc/drtras.cc + dcmrt/libsrc/drtrbas2.cc + dcmrt/libsrc/drtrbas8.cc + dcmrt/libsrc/drtrbls.cc + dcmrt/libsrc/drtrbos1.cc + dcmrt/libsrc/drtrbos6.cc + dcmrt/libsrc/drtrbos7.cc + dcmrt/libsrc/drtrbs2.cc + dcmrt/libsrc/drtrbs4.cc + dcmrt/libsrc/drtrbs8.cc + dcmrt/libsrc/drtrcdrs.cc + dcmrt/libsrc/drtrcos.cc + dcmrt/libsrc/drtrcps.cc + dcmrt/libsrc/drtrcs.cc + dcmrt/libsrc/drtrdros.cc + dcmrt/libsrc/drtrdrs1.cc + dcmrt/libsrc/drtrdrs6.cc + dcmrt/libsrc/drtrdrs8.cc + dcmrt/libsrc/drtrds.cc + dcmrt/libsrc/drtrecs.cc + dcmrt/libsrc/drtrfgs.cc + dcmrt/libsrc/drtrfors.cc + dcmrt/libsrc/drtrics.cc + dcmrt/libsrc/drtrims.cc + dcmrt/libsrc/drtris.cc + dcmrt/libsrc/drtrlsds.cc + dcmrt/libsrc/drtrmdrs.cc + dcmrt/libsrc/drtrms.cc + dcmrt/libsrc/drtrmss6.cc + dcmrt/libsrc/drtrmss7.cc + dcmrt/libsrc/drtrpcs.cc + dcmrt/libsrc/drtrpis.cc + dcmrt/libsrc/drtrppcs.cc + dcmrt/libsrc/drtrpphs.cc + dcmrt/libsrc/drtrpps.cc + dcmrt/libsrc/drtrppss.cc + dcmrt/libsrc/drtrps.cc + dcmrt/libsrc/drtrris1.cc + dcmrt/libsrc/drtrris6.cc + dcmrt/libsrc/drtrris9.cc + dcmrt/libsrc/drtrrms.cc + dcmrt/libsrc/drtrros.cc + dcmrt/libsrc/drtrrpcs.cc + dcmrt/libsrc/drtrrros.cc + dcmrt/libsrc/drtrrs.cc + dcmrt/libsrc/drtrrshs.cc + dcmrt/libsrc/drtrrtps.cc + dcmrt/libsrc/drtrrtps3.cc + dcmrt/libsrc/drtrrtps4.cc + dcmrt/libsrc/drtrrtps5.cc + dcmrt/libsrc/drtrscs.cc + dcmrt/libsrc/drtrsers.cc + dcmrt/libsrc/drtrses.cc + dcmrt/libsrc/drtrshs.cc + dcmrt/libsrc/drtrshs6.cc + dcmrt/libsrc/drtrshs7.cc + dcmrt/libsrc/drtrsis.cc + dcmrt/libsrc/drtrsns.cc + dcmrt/libsrc/drtrsos.cc + dcmrt/libsrc/drtrsrs.cc + dcmrt/libsrc/drtrss.cc + dcmrt/libsrc/drtrsss.cc + dcmrt/libsrc/drtrsts.cc + dcmrt/libsrc/drtrtrs2.cc + dcmrt/libsrc/drtrtrs4.cc + dcmrt/libsrc/drtrvis.cc + dcmrt/libsrc/drtrws.cc + dcmrt/libsrc/drtrwvms.cc + dcmrt/libsrc/drtscris.cc + dcmrt/libsrc/drtsdcs.cc + dcmrt/libsrc/drtsds.cc + dcmrt/libsrc/drtshds.cc + dcmrt/libsrc/drtsis.cc + dcmrt/libsrc/drtsns.cc + dcmrt/libsrc/drtspccs.cc + dcmrt/libsrc/drtspcs.cc + dcmrt/libsrc/drtss.cc + dcmrt/libsrc/drtssrs.cc + dcmrt/libsrc/drtstrct.cc + dcmrt/libsrc/drttms0.cc + dcmrt/libsrc/drttms9.cc + dcmrt/libsrc/drttreat.cc + dcmrt/libsrc/drttscds.cc + dcmrt/libsrc/drttsibs.cc + dcmrt/libsrc/drttsmds.cc + dcmrt/libsrc/drttts.cc + dcmrt/libsrc/drtvls.cc + dcmrt/libsrc/drtwps.cc + dcmrt/libsrc/drtwrs.cc + dcmrt/libsrc/drtwrsrs.cc + dcmrt/libsrc/drtws.cc + dcmrt/libsrc/drtxrs.cc + dcmrt/tests/Makefile.dep + +- Fixed typo in comments. + Affects: dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h + +**** Changes from 2016.10.04 (riesmeier) + +- Updated Context Group classes for DICOM 2016d: + Updated automatically generated Context Group classes for the 2016d + edition of the DICOM standard. There were no changes to the supported + Context Groups. + Affects: dcmsr/include/dcmtk/dcmsr/cmr/cid100.h + dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h + dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h + dcmsr/include/dcmtk/dcmsr/cmr/cid11.h + dcmsr/include/dcmtk/dcmsr/cmr/cid244.h + dcmsr/include/dcmtk/dcmsr/cmr/cid29.h + dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h + dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h + dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h + dcmsr/include/dcmtk/dcmsr/cmr/cid42.h + dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h + dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h + dcmsr/libcmr/cid100.cc + dcmsr/libcmr/cid10013.cc + dcmsr/libcmr/cid10033.cc + dcmsr/libcmr/cid11.cc + dcmsr/libcmr/cid244.cc + dcmsr/libcmr/cid29.cc + dcmsr/libcmr/cid4020.cc + dcmsr/libcmr/cid4021.cc + dcmsr/libcmr/cid4031.cc + dcmsr/libcmr/cid42.cc + dcmsr/libcmr/cid6147.cc + dcmsr/libcmr/cid7021.cc + dcmsr/libcmr/cid7181.cc + dcmsr/libcmr/cid7445.cc + dcmsr/libcmr/cid7452.cc + dcmsr/libcmr/cid7453.cc + dcmsr/libcmr/cid7464.cc + dcmsr/libcmr/cid7469.cc + +- Updated code definitions for DICOM 2016d: + Updated automatically generated code definitions for coding scheme "DCM", + "NCIt" and "UMLS" for the 2016d edition of the DICOM standard. + Affects: dcmsr/include/dcmtk/dcmsr/codes/dcm.h + dcmsr/include/dcmtk/dcmsr/codes/ncit.h + dcmsr/include/dcmtk/dcmsr/codes/umls.h + +- Update data dictionary for DICOM 2016d. + Affects: dcmdata/data/dicom.dic + dcmdata/include/dcmtk/dcmdata/dcdeftag.h + dcmdata/libsrc/dcdictbi.cc + +**** Changes from 2016.10.04 (schlamelcher) + +- Fixed a problem in OFtuple's constructor: + GCC 6.2.1 wasn't able to compile OFtuple's constructor, which is fixed in + this commit. + Affects: ofstd/include/dcmtk/ofstd/oftuple.h + +**** Changes from 2016.09.22 (riesmeier) + +- Added new DCMTK modules "dcmtract" and "dcmpmap": + These two (still pretty new) modules were missing in the README file. + Also updated description of "dcmsr" module in order to be consistent + with the Doxygen file. + Affects: README + +**** Changes from 2016.09.21 (onken) + +- Make Manufacturer type 2, consistency fixes: + Thanks to Jörg Riesmeier for the hint and proposed patch. + Affects: dcmiod/include/dcmtk/dcmiod/modenhequipment.h + dcmiod/include/dcmtk/dcmiod/modequipment.h + dcmiod/libsrc/modenhequipment.cc + dcmiod/libsrc/modequipment.cc + +**** Changes from 2016.09.20 (riesmeier) + +- Disable two test cases when building shared libs: + Temporarily disable two new test cases when building shared libraries + because of unresolvable linker errors (static member "EmptyItem" not + found). + See DCMTK Bug #694. + Affects: dcmsr/tests/Makefile.dep + dcmsr/tests/tsrlist.cc + +**** Changes from 2016.09.19 (riesmeier) + +- Fixed compiler warnings on unused variables: + Fixed compiler warnings on unused variables reported by Visual Studio 2010. + Affects: dcmjpls/libcharls/intrface.cc + +- Fixed linker errors on non-gcc platforms: + Fixed linker errors on non-gcc platforms that occurred after adding new + "dcmsr" test cases (which make use of the class DSRListOfItems). + Affects: dcmsr/tests/tsrlist.cc + +**** Changes from 2016.09.17 (riesmeier) + +- Added missing source file (new test cases): + Added new source file that was missing for the previous commit. + Added: dcmsr/tests/tsrlist.cc + +**** Changes from 2016.09.16 (hasenpusch) + +- Fixed include paths in DCMTK's package config file: + Fixed exporting wrong module include paths inside generated DCMTKConfig.cmake. + The specified module include paths went two levels too deep into the folder + hierarchy, leading to system include shadowing under certain circumstances. + This fixes DCMTK bug #692. + Thanks to forum user jakecobb for reporting this bug. + Affects: CMake/DCMTKConfig.cmake.in + +**** Changes from 2016.09.16 (riesmeier) + +- Enhanced template class DSRListOfItems: + Added new methods addItems() and getItems() to the template class + DSRListOfItems. These new methods expect a vector as a parameter + and thus allow for adding/getting multiple items with a single call. + Closes DCMTK Feature #572. + Affects: dcmsr/include/dcmtk/dcmsr/dsrtlist.h + dcmsr/tests/CMakeLists.txt + dcmsr/tests/Makefile.in + dcmsr/tests/tests.cc + +**** Changes from 2016.09.15 (schlamelcher) + +- Further fixes for OFvariant: + OFvariant's copy constructor and assignment operator are now disabled for + types that can not be converted to one of the variant's alternatives (using + OFenable_if). + Fixed OFvariant's fallback implementation for systems that do not provide + memory alignment facilities. + Affects: ofstd/include/dcmtk/ofstd/variadic/variant.h + +**** Changes from 2016.09.14 (riesmeier) + +- Fixed minor issues in modules' documentation: + Fixed minor issues in modules' documentation of "dcmpmap" und "dcmtract". + Some of these are related to Doxygen (the tool that is used for generating + the rendered output) and some have been fixed for reasons of consistency + with other DCMTK modules. + Affects: dcmpmap/docs/dcmpmap.dox + dcmtract/docs/dcmtract.dox + +**** Changes from 2016.09.14 (schlamelcher) + +- Fixes for OFvariant, dcmiod, dcmseg and dcmpmap: + Removed DLL export macros from several template classes as this does not seem + to work for templates. + Introduced a workaround for older C++ compilers regarding base class + definitions in derived classes, e.g. OFvariant will not be available + as OFvariant (without the template parameters) in derived classes on these + compilers. OFvariant and DcmIODImage now define the types 'variant' and + 'IODImage' resp. instead, which may be used in derived classes for referring + to the resp. base class or one of its methods etc. + Affects: dcmiod/include/dcmtk/dcmiod/iodimage.h + dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h + dcmpmap/libsrc/dpmparametricmapbase.cc + dcmseg/libsrc/segdoc.cc + ofstd/include/dcmtk/ofstd/variadic/variant.h + +**** Changes from 2016.09.13 (schlamelcher) + +- Trying possible fix for OFvariant vs DLLs. + Affects: ofstd/include/dcmtk/ofstd/ofutil.h + ofstd/libsrc/ofstd.cc + +**** Changes from 2016.09.12 (riesmeier) + +- Updated coding scheme designator (CP-1567): + Updated coding scheme designator for CID 5000 (Languages) based on recently + approved CP-1567: The designator changed from "IETF4646" to "RFC5646". + Affects: dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h + dcmsr/libcmr/cid5000.cc + +- Added support for recently approved CPs: + Added support for CP-1418 and CP-1586 to the data dictionary. + These CPs were approved during last week's DICOM WG-06 t-con. + Also fixed an attribute name change in "dcmrt" due to retirement. + Affects: dcmdata/data/dicom.dic + dcmdata/include/dcmtk/dcmdata/dcdeftag.h + dcmdata/libsrc/dcdictbi.cc + dcmrt/libsrc/drtarics.cc + +- Added support for new UIDs from Supplement 121: + Added support for new Storage and Query/Retrieve SOP Class UIDs from + Supplement 121 (CT Protocol Storage). + Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h + dcmdata/libsrc/dcuid.cc + dcmnet/docs/movescu.man + dcmnet/docs/storescp.man + dcmnet/etc/storescp.cfg + dcmnet/etc/storescu.cfg + dcmqrdb/docs/dcmqrscp.man + +- Added support for Supplement 121 to dictionary: + Added support for the final text version of Supplement 121 (CT Protocol + Storage) to the data dictionary. + Affects: dcmdata/data/dicom.dic + dcmdata/include/dcmtk/dcmdata/dcdeftag.h + dcmdata/libsrc/dcdictbi.cc + +**** Changes from 2016.09.10 (onken) + +- Corrected value checking and setters for VM > 1: + Some value checks have been filling the VM parameter incorrectly by providing + the value type (like "1C") instead, leading to an error if value checking is + not disabled. + Thanks to Andrey Fedorov for the bug report. + Also, some type of values (e.g. Floating Point Value) allow more than one + value which is now possible using an optional parameter in the related setter() + method. + Affects: dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h + dcmiod/libsrc/iodcontentitemmacro.cc + +**** Changes from 2016.09.05 (onken) + +- Fixed typos and other enhancements. + Affects: dcmpmap/docs/dcmpmap.dox + +**** Changes from 2016.09.02 (onken) + +- Make sure setValueType() sets correct string value: + Due to a copy/paste error setValueType() has constantly set the value "CODE" + instead of the value provided by the user. + Affects: dcmiod/libsrc/iodcontentitemmacro.cc + +**** Changes from 2016.09.01 (onken) + +- Remove default value for first parameter: + Remove default value for first method parameter in constructor + since otherwise Visual Studio moans that it overlaps with the + default constructor (which is undefined and private, though). + Affects: dcmiod/include/dcmtk/dcmiod/iodmacro.h + +- Introduced new module dcmpmap for Parametric Maps: + The new dcmpmap module offers an API for creation, loading, accessing and + saving DICOM Parametric Map objects as introduced in DICOM Supplement 172. + All binary data types supported by the standard (16 bit signed and unsigned + integer as well as 32 bit and 64 bit floating point data) are handled by the + library. + Acknowledgement: This work has been supported in part by the "QIICR" project. + QIICR is supported by NIH National Cancer Institute, award U24 CA180918. + Added: dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h + dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h + dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h + dcmfg/libsrc/fgframeanatomy.cc + dcmfg/libsrc/fgidentpixeltransform.cc + dcmfg/libsrc/fgparametricmapframetype.cc + dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h + dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h + dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h + dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h + dcmiod/libsrc/iodcontentitemmacro.cc + dcmiod/libsrc/modfloatingpointimagepixel.cc + dcmiod/libsrc/modimagepixelbase.cc + dcmiod/tests/timagepixel.cc + dcmpmap/CMakeLists.txt + dcmpmap/Makefile.in + dcmpmap/configure + dcmpmap/data/Makefile.in + dcmpmap/docs/Makefile.in + dcmpmap/docs/dcmpmap.dox + dcmpmap/etc/Makefile.in + dcmpmap/include/CMakeLists.txt + dcmpmap/include/Makefile.in + dcmpmap/include/dcmtk/dcmpmap/dpmdef.h + dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h + dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h + dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h + dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h + dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h + dcmpmap/libsrc/CMakeLists.txt + dcmpmap/libsrc/Makefile.dep + dcmpmap/libsrc/Makefile.in + dcmpmap/libsrc/dpmmodparametricmapimage.cc + dcmpmap/libsrc/dpmmodparametricmapseries.cc + dcmpmap/libsrc/dpmparametricmapbase.cc + dcmpmap/libsrc/dpmparametricmapiod.cc + dcmpmap/libsrc/dpmtypes.cc + dcmpmap/tests/Makefile.dep + dcmpmap/tests/Makefile.in + ofstd/include/dcmtk/ofstd/ofvriant.h + ofstd/include/dcmtk/ofstd/variadic/helpers.h + ofstd/include/dcmtk/ofstd/variadic/variant.h + ofstd/tests/tvariant.cc + Removed: dcmiod/libsrc/iodimage.cc + Affects: CMakeLists.txt + Makefile + config/modules + dcmdata/include/dcmtk/dcmdata/dcerror.h + dcmfg/include/dcmtk/dcmfg/fgderimg.h + dcmfg/include/dcmtk/dcmfg/fgfracon.h + dcmfg/include/dcmtk/dcmfg/fginterface.h + dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h + dcmfg/include/dcmtk/dcmfg/fgtypes.h + dcmfg/include/dcmtk/dcmfg/stack.h + dcmfg/libsrc/CMakeLists.txt + dcmfg/libsrc/Makefile.dep + dcmfg/libsrc/fgbase.cc + dcmfg/libsrc/fgderimg.cc + dcmfg/libsrc/fgfact.cc + dcmfg/libsrc/fgfracon.cc + dcmfg/libsrc/fgframevoilut.cc + dcmfg/libsrc/fgimagedatatype.cc + dcmfg/libsrc/fginterface.cc + dcmfg/libsrc/fgpixmsr.cc + dcmfg/libsrc/fgplanor.cc + dcmfg/libsrc/fgplanorvol.cc + dcmfg/libsrc/fgplanpo.cc + dcmfg/libsrc/fgplanposvol.cc + dcmfg/libsrc/fgrealworldvaluemapping.cc + dcmfg/libsrc/fgseg.cc + dcmfg/libsrc/fgtypes.cc + dcmfg/libsrc/fgusimagedescription.cc + dcmiod/include/dcmtk/dcmiod/iodcommn.h + dcmiod/include/dcmtk/dcmiod/iodimage.h + dcmiod/include/dcmtk/dcmiod/iodmacro.h + dcmiod/include/dcmtk/dcmiod/iodutil.h + dcmiod/include/dcmtk/dcmiod/modbase.h + dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h + dcmiod/include/dcmtk/dcmiod/modenhequipment.h + dcmiod/include/dcmtk/dcmiod/modequipment.h + dcmiod/include/dcmtk/dcmiod/modfor.h + dcmiod/include/dcmtk/dcmiod/modimagepixel.h + dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h + dcmiod/include/dcmtk/dcmiod/modsynchronisation.h + dcmiod/libsrc/CMakeLists.txt + dcmiod/libsrc/Makefile.dep + dcmiod/libsrc/Makefile.in + dcmiod/libsrc/iodcommn.cc + dcmiod/libsrc/iodmacro.cc + dcmiod/libsrc/modbase.cc + dcmiod/libsrc/modcommoninstanceref.cc + dcmiod/libsrc/modenhequipment.cc + dcmiod/libsrc/modequipment.cc + dcmiod/libsrc/modfor.cc + dcmiod/libsrc/modimagepixel.cc + dcmiod/libsrc/modmultiframedimension.cc + dcmiod/libsrc/modmultiframefg.cc + dcmiod/libsrc/modsynchronization.cc + dcmiod/libsrc/modusfor.cc + dcmiod/tests/CMakeLists.txt + dcmiod/tests/Makefile.dep + dcmiod/tests/Makefile.in + dcmiod/tests/tests.cc + dcmnet/libsrc/dstorscu.cc + dcmseg/include/dcmtk/dcmseg/segdoc.h + dcmseg/libsrc/Makefile.dep + dcmseg/libsrc/segdoc.cc + dcmtract/libsrc/Makefile.dep + doxygen/htmldocs.dox + ofstd/include/dcmtk/ofstd/oftraits.h + ofstd/include/dcmtk/ofstd/ofutil.h + ofstd/libsrc/Makefile.dep + ofstd/libsrc/ofstd.cc + ofstd/tests/CMakeLists.txt + ofstd/tests/Makefile.dep + ofstd/tests/Makefile.in + ofstd/tests/tests.cc + +**** Changes from 2016.08.23 (riesmeier) + +- Fixed typos in comments and log output. + Affects: config/Makefile.def.in + dcmnet/libsrc/dulparse.cc + +**** Changes from 2016.08.22 (onken) + +- Optimized iterator usage to speed up execution. + Affects: dcmfg/libsrc/fg.cc + dcmfg/libsrc/fginterface.cc + +**** Changes from 2016.08.06 (onken) + +- Updated copyright. + Affects: dcmiod/include/dcmtk/dcmiod/iodcommn.h + dcmiod/libsrc/iodcommn.cc + +- Create SourceImageItem from DcmDataset as input: + Thanks to Christian Herz for the suggested patch. + Affects: dcmfg/include/dcmtk/dcmfg/fgderimg.h + dcmfg/libsrc/fgderimg.cc + +- Moved import..() functionality into IODCommon: + Moved import...() into base class of IOD classes in order to make it usable + from all derived IOD implementations, e.g. Segmentation IOD in dcmseg, which + directly offered this function before, and Parametric Maps IOD in dcmpmap. + Affects: dcmiod/include/dcmtk/dcmiod/iodcommn.h + dcmiod/libsrc/iodcommn.cc + dcmseg/include/dcmtk/dcmseg/segdoc.h + dcmseg/libsrc/segdoc.cc + +**** Changes from 2016.08.03 (onken) + +- Switched VR and VM in comment. + Affects: dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h + +**** Changes from 2016.07.27 (riesmeier) + +- Fixed warnings with Clang -Wparentheses-equality: + Fixed warnings reported by Clang compiler, which uses -Wparentheses-equality + by default, i.e. removed extraneous parentheses around equality comparison. + Also fixed various typos in comments. + Affects: dcmjpeg/libsrc/djcodece.cc + +**** Changes from 2016.07.25 (riesmeier) + +- Added explicit type cast to avoid warning: + Added explicit typecast to a parameter value in order to avoid a warning + reported by MSVC++ on Windows 64-bit systems. + Affects: dcmimgle/libsrc/dimoimg.cc + +- Changed type of local variable to avoid warning: + Changed type of local variable from size_t to unsigned long in order to + avoid a warning reported by MSVC++ on Windows 64-bit systems. + Affects: dcmjpeg/libsrc/ddpiimpl.cc + +**** Changes from 2016.07.19 (hasenpusch) + +- Fixed and refactored mutex & rwlock tests: + Made sure thread 2 starts after thread 1 claims the first lock. + Closes DCMTK bug #689. + Affects: ofstd/tests/tthread.cc + +**** Changes from 2016.07.18 (riesmeier) + +- Fixed typos in comments. + Affects: dcmsr/include/dcmtk/dcmsr/dsrsoprf.h + dcmsr/libcmr/cid5000.cc + oflog/include/dcmtk/oflog/oflog.h + oflog/libsrc/oflog.cc + +**** Changes from 2016.07.08 (hasenpusch) + +- Fixed potential buffer overflow in libcharls: + Libcharls' encoding facility now reallocates the given target buffer if + the initial capacity happens to be too small. + Closes DCMTK bug #688. + Affects: dcmjpls/libcharls/decodstr.h + dcmjpls/libcharls/encodstr.h + dcmjpls/libcharls/header.cc + dcmjpls/libcharls/intrface.cc + dcmjpls/libcharls/intrface.h + dcmjpls/libcharls/pubtypes.h + dcmjpls/libcharls/scan.h + dcmjpls/libcharls/streams.h + dcmjpls/libcharls/util.h + dcmjpls/libsrc/djcodece.cc + **** Changes from 2016.06.30 (schlamelcher) - Updated CHANGES.361 for new development snapshot. diff --git a/doxygen/htmldocs.cfg b/doxygen/htmldocs.cfg index 5e869a64..84d0e406 100644 --- a/doxygen/htmldocs.cfg +++ b/doxygen/htmldocs.cfg @@ -38,7 +38,7 @@ PROJECT_NAME = DCMTK # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "Version @DCMTK_VERSION@ 20160630" +PROJECT_NUMBER = "Version @DCMTK_VERSION@ 20161102" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doxygen/htmldocs.dox b/doxygen/htmldocs.dox index 770d4478..b4ecff75 100644 --- a/doxygen/htmldocs.dox +++ b/doxygen/htmldocs.dox @@ -17,6 +17,7 @@ DCMTK contains the following sub-packages, each in its own sub-directory: \li \ref mod_dcmjpeg \li \ref mod_dcmjpls \li \ref mod_dcmnet +\li \ref mod_dcmpmap \li \ref mod_dcmpstat \li \ref mod_dcmqrdb \li \ref mod_dcmrt diff --git a/doxygen/manpages.cfg b/doxygen/manpages.cfg index 668ff433..0ff393ee 100644 --- a/doxygen/manpages.cfg +++ b/doxygen/manpages.cfg @@ -38,7 +38,7 @@ PROJECT_NAME = "OFFIS DCMTK" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = "@DCMTK_VERSION@ 20160630" +PROJECT_NUMBER = "@DCMTK_VERSION@ 20161102" # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/doxygen/manpages/man1/dcm2pdf.1 b/doxygen/manpages/man1/dcm2pdf.1 index d3c602c8..39d1209f 100644 --- a/doxygen/manpages/man1/dcm2pdf.1 +++ b/doxygen/manpages/man1/dcm2pdf.1 @@ -1,4 +1,4 @@ -.TH "dcm2pdf" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcm2pdf" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcm2pdf \- Extract PDF file from DICOM encapsulated PDF diff --git a/doxygen/manpages/man1/dcm2pnm.1 b/doxygen/manpages/man1/dcm2pnm.1 index 2616a6ce..9b3f16d5 100644 --- a/doxygen/manpages/man1/dcm2pnm.1 +++ b/doxygen/manpages/man1/dcm2pnm.1 @@ -1,4 +1,4 @@ -.TH "dcm2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcm2pnm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcm2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF or BMP diff --git a/doxygen/manpages/man1/dcm2xml.1 b/doxygen/manpages/man1/dcm2xml.1 index 67efbe61..cc1eaac5 100644 --- a/doxygen/manpages/man1/dcm2xml.1 +++ b/doxygen/manpages/man1/dcm2xml.1 @@ -1,4 +1,4 @@ -.TH "dcm2xml" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcm2xml" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcm2xml \- Convert DICOM file and data set to XML diff --git a/doxygen/manpages/man1/dcmcjpeg.1 b/doxygen/manpages/man1/dcmcjpeg.1 index 58345cf2..e9b4d6e7 100644 --- a/doxygen/manpages/man1/dcmcjpeg.1 +++ b/doxygen/manpages/man1/dcmcjpeg.1 @@ -1,4 +1,4 @@ -.TH "dcmcjpeg" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmcjpeg" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmcjpeg \- Encode DICOM file to JPEG transfer syntax diff --git a/doxygen/manpages/man1/dcmcjpls.1 b/doxygen/manpages/man1/dcmcjpls.1 index ca504674..6e5ed70e 100644 --- a/doxygen/manpages/man1/dcmcjpls.1 +++ b/doxygen/manpages/man1/dcmcjpls.1 @@ -1,4 +1,4 @@ -.TH "dcmcjpls" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmcjpls" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmcjpls \- Encode DICOM file to JPEG-LS transfer syntax diff --git a/doxygen/manpages/man1/dcmconv.1 b/doxygen/manpages/man1/dcmconv.1 index 5f9fa60a..ef5b2d0a 100644 --- a/doxygen/manpages/man1/dcmconv.1 +++ b/doxygen/manpages/man1/dcmconv.1 @@ -1,4 +1,4 @@ -.TH "dcmconv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmconv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmconv \- Convert DICOM file encoding diff --git a/doxygen/manpages/man1/dcmcrle.1 b/doxygen/manpages/man1/dcmcrle.1 index 3cf798ef..d6e959a7 100644 --- a/doxygen/manpages/man1/dcmcrle.1 +++ b/doxygen/manpages/man1/dcmcrle.1 @@ -1,4 +1,4 @@ -.TH "dcmcrle" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmcrle" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmcrle \- Encode DICOM file to RLE transfer syntax diff --git a/doxygen/manpages/man1/dcmdjpeg.1 b/doxygen/manpages/man1/dcmdjpeg.1 index 38264e81..29d35e45 100644 --- a/doxygen/manpages/man1/dcmdjpeg.1 +++ b/doxygen/manpages/man1/dcmdjpeg.1 @@ -1,4 +1,4 @@ -.TH "dcmdjpeg" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmdjpeg" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmdjpeg \- Decode JPEG-compressed DICOM file diff --git a/doxygen/manpages/man1/dcmdjpls.1 b/doxygen/manpages/man1/dcmdjpls.1 index 4e61ba50..6eaa71f6 100644 --- a/doxygen/manpages/man1/dcmdjpls.1 +++ b/doxygen/manpages/man1/dcmdjpls.1 @@ -1,4 +1,4 @@ -.TH "dcmdjpls" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmdjpls" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmdjpls \- Decode JPEG-LS compressed DICOM file diff --git a/doxygen/manpages/man1/dcmdrle.1 b/doxygen/manpages/man1/dcmdrle.1 index 8af08b0d..2cf013cf 100644 --- a/doxygen/manpages/man1/dcmdrle.1 +++ b/doxygen/manpages/man1/dcmdrle.1 @@ -1,4 +1,4 @@ -.TH "dcmdrle" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmdrle" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmdrle \- Decode RLE-compressed DICOM file diff --git a/doxygen/manpages/man1/dcmdspfn.1 b/doxygen/manpages/man1/dcmdspfn.1 index ba9a84d2..1ff9ad59 100644 --- a/doxygen/manpages/man1/dcmdspfn.1 +++ b/doxygen/manpages/man1/dcmdspfn.1 @@ -1,4 +1,4 @@ -.TH "dcmdspfn" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmdspfn" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmdspfn \- Export standard display curves to a text file diff --git a/doxygen/manpages/man1/dcmdump.1 b/doxygen/manpages/man1/dcmdump.1 index fe755b23..e152cd92 100644 --- a/doxygen/manpages/man1/dcmdump.1 +++ b/doxygen/manpages/man1/dcmdump.1 @@ -1,4 +1,4 @@ -.TH "dcmdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmdump" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmdump \- Dump DICOM file and data set diff --git a/doxygen/manpages/man1/dcmftest.1 b/doxygen/manpages/man1/dcmftest.1 index a0b2280b..f38408c0 100644 --- a/doxygen/manpages/man1/dcmftest.1 +++ b/doxygen/manpages/man1/dcmftest.1 @@ -1,4 +1,4 @@ -.TH "dcmftest" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmftest" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmftest \- Test if file uses DICOM part 10 format diff --git a/doxygen/manpages/man1/dcmgpdir.1 b/doxygen/manpages/man1/dcmgpdir.1 index 27b88976..e751617c 100644 --- a/doxygen/manpages/man1/dcmgpdir.1 +++ b/doxygen/manpages/man1/dcmgpdir.1 @@ -1,4 +1,4 @@ -.TH "dcmgpdir" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmgpdir" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmgpdir \- Create a general purpose DICOMDIR diff --git a/doxygen/manpages/man1/dcmj2pnm.1 b/doxygen/manpages/man1/dcmj2pnm.1 index 7d628f71..c8e811d0 100644 --- a/doxygen/manpages/man1/dcmj2pnm.1 +++ b/doxygen/manpages/man1/dcmj2pnm.1 @@ -1,4 +1,4 @@ -.TH "dcmj2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmj2pnm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmj2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF, JPEG or BMP diff --git a/doxygen/manpages/man1/dcml2pnm.1 b/doxygen/manpages/man1/dcml2pnm.1 index 45e8eaca..6146f79b 100644 --- a/doxygen/manpages/man1/dcml2pnm.1 +++ b/doxygen/manpages/man1/dcml2pnm.1 @@ -1,4 +1,4 @@ -.TH "dcml2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcml2pnm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcml2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF or BMP diff --git a/doxygen/manpages/man1/dcmmkcrv.1 b/doxygen/manpages/man1/dcmmkcrv.1 index 2ff7a1d9..ba6b987a 100644 --- a/doxygen/manpages/man1/dcmmkcrv.1 +++ b/doxygen/manpages/man1/dcmmkcrv.1 @@ -1,4 +1,4 @@ -.TH "dcmmkcrv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmmkcrv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmmkcrv \- Add 2D curve data to image diff --git a/doxygen/manpages/man1/dcmmkdir.1 b/doxygen/manpages/man1/dcmmkdir.1 index 2d152a61..9612f23a 100644 --- a/doxygen/manpages/man1/dcmmkdir.1 +++ b/doxygen/manpages/man1/dcmmkdir.1 @@ -1,4 +1,4 @@ -.TH "dcmmkdir" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmmkdir" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmmkdir \- Create a DICOMDIR file diff --git a/doxygen/manpages/man1/dcmmklut.1 b/doxygen/manpages/man1/dcmmklut.1 index 5b53dab6..f9d8c592 100644 --- a/doxygen/manpages/man1/dcmmklut.1 +++ b/doxygen/manpages/man1/dcmmklut.1 @@ -1,4 +1,4 @@ -.TH "dcmmklut" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmmklut" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmmklut \- Create DICOM look-up tables diff --git a/doxygen/manpages/man1/dcmodify.1 b/doxygen/manpages/man1/dcmodify.1 index 414f5fe7..aa7233f9 100644 --- a/doxygen/manpages/man1/dcmodify.1 +++ b/doxygen/manpages/man1/dcmodify.1 @@ -1,4 +1,4 @@ -.TH "dcmodify" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmodify" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmodify \- Modify DICOM files diff --git a/doxygen/manpages/man1/dcmp2pgm.1 b/doxygen/manpages/man1/dcmp2pgm.1 index da0e53b5..dd86de6c 100644 --- a/doxygen/manpages/man1/dcmp2pgm.1 +++ b/doxygen/manpages/man1/dcmp2pgm.1 @@ -1,4 +1,4 @@ -.TH "dcmp2pgm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmp2pgm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmp2pgm \- Read DICOM image and presentation state and render bitmap diff --git a/doxygen/manpages/man1/dcmprscp.1 b/doxygen/manpages/man1/dcmprscp.1 index cff018b7..0cfc7270 100644 --- a/doxygen/manpages/man1/dcmprscp.1 +++ b/doxygen/manpages/man1/dcmprscp.1 @@ -1,4 +1,4 @@ -.TH "dcmprscp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmprscp" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmprscp \- DICOM basic grayscale print management SCP diff --git a/doxygen/manpages/man1/dcmprscu.1 b/doxygen/manpages/man1/dcmprscu.1 index 298279e5..f04e66d7 100644 --- a/doxygen/manpages/man1/dcmprscu.1 +++ b/doxygen/manpages/man1/dcmprscu.1 @@ -1,4 +1,4 @@ -.TH "dcmprscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmprscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmprscu \- Print spooler for presentation state viewer diff --git a/doxygen/manpages/man1/dcmpschk.1 b/doxygen/manpages/man1/dcmpschk.1 index dd3102ff..58fd994d 100644 --- a/doxygen/manpages/man1/dcmpschk.1 +++ b/doxygen/manpages/man1/dcmpschk.1 @@ -1,4 +1,4 @@ -.TH "dcmpschk" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmpschk" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmpschk \- Checking tool for presentation states diff --git a/doxygen/manpages/man1/dcmpsmk.1 b/doxygen/manpages/man1/dcmpsmk.1 index c7381490..b446d5bf 100644 --- a/doxygen/manpages/man1/dcmpsmk.1 +++ b/doxygen/manpages/man1/dcmpsmk.1 @@ -1,4 +1,4 @@ -.TH "dcmpsmk" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmpsmk" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmpsmk \- Create DICOM grayscale softcopy presentation state diff --git a/doxygen/manpages/man1/dcmpsprt.1 b/doxygen/manpages/man1/dcmpsprt.1 index cecf66c4..d63081e3 100644 --- a/doxygen/manpages/man1/dcmpsprt.1 +++ b/doxygen/manpages/man1/dcmpsprt.1 @@ -1,4 +1,4 @@ -.TH "dcmpsprt" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmpsprt" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmpsprt \- Read DICOM images and presentation states and render print job diff --git a/doxygen/manpages/man1/dcmpsrcv.1 b/doxygen/manpages/man1/dcmpsrcv.1 index fc329a4c..610fe055 100644 --- a/doxygen/manpages/man1/dcmpsrcv.1 +++ b/doxygen/manpages/man1/dcmpsrcv.1 @@ -1,4 +1,4 @@ -.TH "dcmpsrcv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmpsrcv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmpsrcv \- Network receive for presentation state viewer diff --git a/doxygen/manpages/man1/dcmpssnd.1 b/doxygen/manpages/man1/dcmpssnd.1 index cfd970b8..c200656f 100644 --- a/doxygen/manpages/man1/dcmpssnd.1 +++ b/doxygen/manpages/man1/dcmpssnd.1 @@ -1,4 +1,4 @@ -.TH "dcmpssnd" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmpssnd" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmpssnd \- Network send for presentation state viewer diff --git a/doxygen/manpages/man1/dcmqridx.1 b/doxygen/manpages/man1/dcmqridx.1 index e02f750b..52f000c7 100644 --- a/doxygen/manpages/man1/dcmqridx.1 +++ b/doxygen/manpages/man1/dcmqridx.1 @@ -1,4 +1,4 @@ -.TH "dcmqridx" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmqridx" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmqridx \- Register a DICOM image file in an image database index file diff --git a/doxygen/manpages/man1/dcmqrscp.1 b/doxygen/manpages/man1/dcmqrscp.1 index be000417..598ccd12 100644 --- a/doxygen/manpages/man1/dcmqrscp.1 +++ b/doxygen/manpages/man1/dcmqrscp.1 @@ -1,4 +1,4 @@ -.TH "dcmqrscp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmqrscp" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmqrscp \- DICOM image archive (central test node) @@ -740,6 +740,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 diff --git a/doxygen/manpages/man1/dcmqrti.1 b/doxygen/manpages/man1/dcmqrti.1 index 0b48e69c..7b188f06 100644 --- a/doxygen/manpages/man1/dcmqrti.1 +++ b/doxygen/manpages/man1/dcmqrti.1 @@ -1,4 +1,4 @@ -.TH "dcmqrti" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmqrti" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmqrti \- The Terminal Initiator Telnet Client Program diff --git a/doxygen/manpages/man1/dcmquant.1 b/doxygen/manpages/man1/dcmquant.1 index 4dcfd992..ef82e11e 100644 --- a/doxygen/manpages/man1/dcmquant.1 +++ b/doxygen/manpages/man1/dcmquant.1 @@ -1,4 +1,4 @@ -.TH "dcmquant" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmquant" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmquant \- Convert DICOM color images to palette color diff --git a/doxygen/manpages/man1/dcmrecv.1 b/doxygen/manpages/man1/dcmrecv.1 index bc2d224b..37319246 100644 --- a/doxygen/manpages/man1/dcmrecv.1 +++ b/doxygen/manpages/man1/dcmrecv.1 @@ -1,4 +1,4 @@ -.TH "dcmrecv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmrecv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmrecv \- Simple DICOM storage SCP (receiver) diff --git a/doxygen/manpages/man1/dcmscale.1 b/doxygen/manpages/man1/dcmscale.1 index 77b73e1a..831e656c 100644 --- a/doxygen/manpages/man1/dcmscale.1 +++ b/doxygen/manpages/man1/dcmscale.1 @@ -1,4 +1,4 @@ -.TH "dcmscale" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmscale" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmscale \- Scale DICOM images diff --git a/doxygen/manpages/man1/dcmsend.1 b/doxygen/manpages/man1/dcmsend.1 index 2d04ec13..c29db11b 100644 --- a/doxygen/manpages/man1/dcmsend.1 +++ b/doxygen/manpages/man1/dcmsend.1 @@ -1,4 +1,4 @@ -.TH "dcmsend" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmsend" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmsend \- Simple DICOM storage SCU (sender) diff --git a/doxygen/manpages/man1/dcmsign.1 b/doxygen/manpages/man1/dcmsign.1 index 53e718b9..2b25d816 100644 --- a/doxygen/manpages/man1/dcmsign.1 +++ b/doxygen/manpages/man1/dcmsign.1 @@ -1,4 +1,4 @@ -.TH "dcmsign" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcmsign" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcmsign \- Sign and Verify DICOM Files diff --git a/doxygen/manpages/man1/dcod2lum.1 b/doxygen/manpages/man1/dcod2lum.1 index aec7f548..a15317c4 100644 --- a/doxygen/manpages/man1/dcod2lum.1 +++ b/doxygen/manpages/man1/dcod2lum.1 @@ -1,4 +1,4 @@ -.TH "dcod2lum" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dcod2lum" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dcod2lum \- Convert hardcopy characteristic curve file to softcopy format diff --git a/doxygen/manpages/man1/dconvlum.1 b/doxygen/manpages/man1/dconvlum.1 index 93d71b84..e15eeaac 100644 --- a/doxygen/manpages/man1/dconvlum.1 +++ b/doxygen/manpages/man1/dconvlum.1 @@ -1,4 +1,4 @@ -.TH "dconvlum" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dconvlum" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dconvlum \- Convert VeriLUM files to DCMTK display files diff --git a/doxygen/manpages/man1/drtdump.1 b/doxygen/manpages/man1/drtdump.1 index 69bc3bd4..fd92e0d1 100644 --- a/doxygen/manpages/man1/drtdump.1 +++ b/doxygen/manpages/man1/drtdump.1 @@ -1,4 +1,4 @@ -.TH "drtdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "drtdump" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME drtdump \- Dump DICOM RT file and data set diff --git a/doxygen/manpages/man1/dsr2html.1 b/doxygen/manpages/man1/dsr2html.1 index 6471461e..c4b39095 100644 --- a/doxygen/manpages/man1/dsr2html.1 +++ b/doxygen/manpages/man1/dsr2html.1 @@ -1,4 +1,4 @@ -.TH "dsr2html" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dsr2html" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dsr2html \- Render DICOM SR file and data set to HTML/XHTML diff --git a/doxygen/manpages/man1/dsr2xml.1 b/doxygen/manpages/man1/dsr2xml.1 index 49b116cf..96a6226f 100644 --- a/doxygen/manpages/man1/dsr2xml.1 +++ b/doxygen/manpages/man1/dsr2xml.1 @@ -1,4 +1,4 @@ -.TH "dsr2xml" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dsr2xml" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dsr2xml \- Convert DICOM SR file and data set to XML diff --git a/doxygen/manpages/man1/dsrdump.1 b/doxygen/manpages/man1/dsrdump.1 index 7227495a..371a710a 100644 --- a/doxygen/manpages/man1/dsrdump.1 +++ b/doxygen/manpages/man1/dsrdump.1 @@ -1,4 +1,4 @@ -.TH "dsrdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dsrdump" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dsrdump \- Dump DICOM SR file and data set diff --git a/doxygen/manpages/man1/dump2dcm.1 b/doxygen/manpages/man1/dump2dcm.1 index 8ef03f67..42e36e4b 100644 --- a/doxygen/manpages/man1/dump2dcm.1 +++ b/doxygen/manpages/man1/dump2dcm.1 @@ -1,4 +1,4 @@ -.TH "dump2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "dump2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME dump2dcm \- Convert ASCII dump to DICOM file diff --git a/doxygen/manpages/man1/echoscu.1 b/doxygen/manpages/man1/echoscu.1 index a3c9fa9f..a7dd3aa6 100644 --- a/doxygen/manpages/man1/echoscu.1 +++ b/doxygen/manpages/man1/echoscu.1 @@ -1,4 +1,4 @@ -.TH "echoscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "echoscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME echoscu \- DICOM verification (C-ECHO) SCU diff --git a/doxygen/manpages/man1/findscu.1 b/doxygen/manpages/man1/findscu.1 index caf1e429..189c5e73 100644 --- a/doxygen/manpages/man1/findscu.1 +++ b/doxygen/manpages/man1/findscu.1 @@ -1,4 +1,4 @@ -.TH "findscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "findscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME findscu \- DICOM query (C-FIND) SCU diff --git a/doxygen/manpages/man1/getscu.1 b/doxygen/manpages/man1/getscu.1 index d78c93ce..3effdf23 100644 --- a/doxygen/manpages/man1/getscu.1 +++ b/doxygen/manpages/man1/getscu.1 @@ -1,4 +1,4 @@ -.TH "getscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "getscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME getscu \- DICOM retrieve (C-GET) SCU diff --git a/doxygen/manpages/man1/img2dcm.1 b/doxygen/manpages/man1/img2dcm.1 index a95358c9..f96888d5 100644 --- a/doxygen/manpages/man1/img2dcm.1 +++ b/doxygen/manpages/man1/img2dcm.1 @@ -1,4 +1,4 @@ -.TH "img2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "img2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME img2dcm \- Convert standard image formats into DICOM format diff --git a/doxygen/manpages/man1/movescu.1 b/doxygen/manpages/man1/movescu.1 index 423b320a..e478f020 100644 --- a/doxygen/manpages/man1/movescu.1 +++ b/doxygen/manpages/man1/movescu.1 @@ -1,4 +1,4 @@ -.TH "movescu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "movescu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME movescu \- DICOM retrieve (C-MOVE) SCU @@ -508,6 +508,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 diff --git a/doxygen/manpages/man1/pdf2dcm.1 b/doxygen/manpages/man1/pdf2dcm.1 index 9c15deb8..e6a15b0c 100644 --- a/doxygen/manpages/man1/pdf2dcm.1 +++ b/doxygen/manpages/man1/pdf2dcm.1 @@ -1,4 +1,4 @@ -.TH "pdf2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "pdf2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME pdf2dcm \- Convert PDF file to DICOM diff --git a/doxygen/manpages/man1/storescp.1 b/doxygen/manpages/man1/storescp.1 index 00ac7d76..6bca14bd 100644 --- a/doxygen/manpages/man1/storescp.1 +++ b/doxygen/manpages/man1/storescp.1 @@ -1,4 +1,4 @@ -.TH "storescp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "storescp" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME storescp \- DICOM storage (C-STORE) SCP @@ -602,6 +602,8 @@ LegacyConvertedEnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.128 RETIRED_StandalonePETCurveStorage 1.2.840.10008.5.1.4.1.1.129 EnhancedPETImageStorage 1.2.840.10008.5.1.4.1.1.130 BasicStructuredDisplayStorage 1.2.840.10008.5.1.4.1.1.131 +CTDefinedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.1 +CTPerformedProcedureProtocolStorage 1.2.840.10008.5.1.4.1.1.200.2 RTImageStorage 1.2.840.10008.5.1.4.1.1.481.1 RTDoseStorage 1.2.840.10008.5.1.4.1.1.481.2 RTStructureSetStorage 1.2.840.10008.5.1.4.1.1.481.3 diff --git a/doxygen/manpages/man1/storescu.1 b/doxygen/manpages/man1/storescu.1 index 275ed6a7..9cfed80f 100644 --- a/doxygen/manpages/man1/storescu.1 +++ b/doxygen/manpages/man1/storescu.1 @@ -1,4 +1,4 @@ -.TH "storescu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "storescu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME storescu \- DICOM storage (C-STORE) SCU diff --git a/doxygen/manpages/man1/termscu.1 b/doxygen/manpages/man1/termscu.1 index a968b58f..10d3f034 100644 --- a/doxygen/manpages/man1/termscu.1 +++ b/doxygen/manpages/man1/termscu.1 @@ -1,4 +1,4 @@ -.TH "termscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "termscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME termscu \- DICOM termination SCU diff --git a/doxygen/manpages/man1/wlmscpfs.1 b/doxygen/manpages/man1/wlmscpfs.1 index 0e129993..f98d3dfa 100644 --- a/doxygen/manpages/man1/wlmscpfs.1 +++ b/doxygen/manpages/man1/wlmscpfs.1 @@ -1,4 +1,4 @@ -.TH "wlmscpfs" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "wlmscpfs" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME wlmscpfs \- DICOM Basic Worklist Management SCP (based on data files) diff --git a/doxygen/manpages/man1/xml2dcm.1 b/doxygen/manpages/man1/xml2dcm.1 index 24bcd7b1..9096d919 100644 --- a/doxygen/manpages/man1/xml2dcm.1 +++ b/doxygen/manpages/man1/xml2dcm.1 @@ -1,4 +1,4 @@ -.TH "xml2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "xml2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME xml2dcm \- Convert XML document to DICOM file or data set diff --git a/doxygen/manpages/man1/xml2dsr.1 b/doxygen/manpages/man1/xml2dsr.1 index cee3c230..a515aa18 100644 --- a/doxygen/manpages/man1/xml2dsr.1 +++ b/doxygen/manpages/man1/xml2dsr.1 @@ -1,4 +1,4 @@ -.TH "xml2dsr" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- +.TH "xml2dsr" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*- .nh .SH NAME xml2dsr \- Convert DICOM SR file and data set to XML diff --git a/oflog/include/dcmtk/oflog/oflog.h b/oflog/include/dcmtk/oflog/oflog.h index 7f9829b3..bb8ddbcb 100644 --- a/oflog/include/dcmtk/oflog/oflog.h +++ b/oflog/include/dcmtk/oflog/oflog.h @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2009-2011, OFFIS e.V. + * Copyright (C) 2009-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -63,7 +63,7 @@ public: ERROR_LOG_LEVEL = dcmtk::log4cplus::ERROR_LOG_LEVEL, /// fatal: very severe error events that will presumably lead the application to abort FATAL_LOG_LEVEL = dcmtk::log4cplus::FATAL_LOG_LEVEL, - /// internal: turn off logging competely + /// internal: turn off logging completely OFF_LOG_LEVEL = dcmtk::log4cplus::OFF_LOG_LEVEL }; diff --git a/oflog/libsrc/oflog.cc b/oflog/libsrc/oflog.cc index c8a17419..fa14b31b 100644 --- a/oflog/libsrc/oflog.cc +++ b/oflog/libsrc/oflog.cc @@ -1,6 +1,6 @@ /* * - * Copyright (C) 2009-2011, OFFIS e.V. + * Copyright (C) 2009-2016, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by @@ -184,7 +184,7 @@ void OFLog::configureFromCommandLine(OFCommandLine &cmd, app.checkValue(cmd.getValue(logConfig)); - // check wether config file exists at all and is readable + // check whether config file exists at all and is readable if (!OFStandard::fileExists(logConfig)) app.printError("Specified --log-config file does not exist"); if (!OFStandard::isReadable(logConfig)) diff --git a/ofstd/include/dcmtk/ofstd/oftraits.h b/ofstd/include/dcmtk/ofstd/oftraits.h index a05b4a7f..a8a4e8b3 100644 --- a/ofstd/include/dcmtk/ofstd/oftraits.h +++ b/ofstd/include/dcmtk/ofstd/oftraits.h @@ -100,7 +100,7 @@ template struct OFconditional { typedef F type; }; template -struct OFintegral_constant { static const T value = Value; }; +struct OFintegral_constant { typedef OFintegral_constant type; static const T value = Value; }; template const T OFintegral_constant::value; diff --git a/ofstd/include/dcmtk/ofstd/oftuple.h b/ofstd/include/dcmtk/ofstd/oftuple.h index 40009934..46341af5 100644 --- a/ofstd/include/dcmtk/ofstd/oftuple.h +++ b/ofstd/include/dcmtk/ofstd/oftuple.h @@ -297,8 +297,7 @@ template<> struct OFtuple_content<> { OFtuple_content() {} - template - OFtuple_content(const X&) {} + OFtuple_content(va_list*) {} template void assign(const X&) {} template diff --git a/ofstd/include/dcmtk/ofstd/ofutil.h b/ofstd/include/dcmtk/ofstd/ofutil.h index 0dd87342..db7f71f0 100644 --- a/ofstd/include/dcmtk/ofstd/ofutil.h +++ b/ofstd/include/dcmtk/ofstd/ofutil.h @@ -36,11 +36,23 @@ #ifdef DCMTK_USE_CXX11_STL #include +#include #define OFmove std::move #define OFswap std::swap -#define OFget std::get #define OFMake_pair std::make_pair +template +constexpr auto OFget( T&& t ) -> decltype( std::get( std::forward( t ) ) ) +{ + return std::get( std::forward( t ) ); +} + +template +constexpr auto OFget( T&& t ) -> decltype( std::get( std::forward( t ) ) ) +{ + return std::get( std::forward( t ) ); +} + template using OFPair = std::pair; @@ -525,4 +537,343 @@ const typename OFtuple_element::type& OFget( const Tuple& tuple ); #endif // NOT C++11 +#ifndef DOXYGEN + +// OFin_place hacks, look at the doxygen documentation instead if +// you know what's good for you! +class DCMTK_OFSTD_EXPORT OFin_place_tag { OFin_place_tag(); }; +typedef OFin_place_tag(&OFin_place_t)(); +#define OFin_place_type_t(T) OFin_place_tag(&)(T&) +#define OFin_place_index_t(I) OFin_place_tag(&)(OFintegral_constant&) +DCMTK_OFSTD_EXPORT OFin_place_tag OFin_place(); +template +OFin_place_tag OFin_place(T&) { return OFin_place(); } +template +OFin_place_tag OFin_place(OFintegral_constant&) { return OFin_place(); } + +#else // NOT DOXYGEN + +/** @defgroup OFin_place_helpers_brief + * @details Tools for in-place construction of objects, e.g. certain OFvariant alternatives. + * @defgroup OFin_place_helpers Tools for in-place construction + * @details + * #include "dcmtk/ofstd/ofutil.h"

+ * @copydoc OFin_place_helpers_brief + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *

Type Definitions

typedef unspecifiedOFin_place_t
A type for tagging an in-place constructor as such. More...
template<typename T>
typedef unspecifiedOFin_place_type_t(T)
A type for tagging an in-place constructor for a certain type as such. More...
template<size_t I>
typedef unspecifiedOFin_place_index_t(I)
A type for tagging an in-place constructor based on a certain index as such. More...
+ * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *

Global Constants

OFin_place_tOFin_place
+ * A constant of type OFin_place_t that may be used for in-place construction. + * More... + *
template<typename T>
OFin_place_type_t(T)OFin_place<T>
+ * A constant of type OFin_place_type_t(T) that may be used for in-place construction. + * More... + *
template<size_t I>
OFin_place_index_t(I)OFin_place<I>
+ * A constant of type OFin_place_index_t(I) that may be used for in-place construction. + * More... + *
+ *

Type Definition Documentation

+ * @anchor OFin_place_t + *
+ *
+ *
+ * typedef unspecified OFin_place_t + *
+ *
+ *
+ *
A type for tagging an in-place constructor as such.
+ *
+ * Usage Example:
+ * @code{.cpp} + * template + * class Wrapper + * { + * public: + * // Will copy construct the wrapped value from a T. + * Wrapper( const T& t ); + * + * // Will in-place construct the value from the given arguments, + * // calling T( arguments... ) internally, without unnecessary + * // copies. + * template + * Wrapper( OFin_place_t, Arguments... arguments ); + * + * private: + * // ... wrapper implementation ... + * }; + * @endcode + *
+ *
+ * @anchor OFin_place_type_t + *
+ *
+ *
template
+ *
+ * typedef unspecified OFin_place_type_t(T) + *
+ *
+ *
+ *
A type for tagging an in-place constructor for a certain type as such. + *
+ *
+ *
Template Parameters
+ *
T the type this in-pace constructor handles, i.e. the type that will be constructed.
+ *
+ * @note Pre C++11 compilers do not support alias templates, therefore, OFin_place_type_t is implemented + * using preprocessor macros internally. This is why you need to use curved brackets instead of angled ones. + * + * Usage Example:
+ * @code{.cpp} + * template + * class Union + * { + * public: + * // Will copy construct the wrapped value as an A from a. + * Union( const A& a ); + * + * // Will copy construct the wrapped value as a B from b. + * Union( const B& b ); + * + * // Will in-place construct the value as an A from the given + * // arguments, calling A( arguments... ) internally, without + * // unnecessary copies. + * template + * Union( OFin_place_type_t(A), Arguments... arguments ); + * + * // Will in-place construct the value as a B from the given + * // arguments, calling B( arguments... ) internally, without + * // unnecessary copies. + * template + * Union( OFin_place_type_t(B), Arguments... arguments ); + * + * private: + * // ... union implementation ... + * }; + * @endcode + *
+ *
+ * @anchor OFin_place_index_t + *
+ *
+ *
template
+ *
+ * typedef unspecified OFin_place_index_t(I) + *
+ *
+ *
+ *
A type for tagging an in-place constructor for a certain index as such.
+ *
+ *
Template Parameters
+ *
+ * I the index this in-pace constructor handles, i.e. the zero + * based index of the type that will be constructed. + *
+ *
+ * @note Pre C++11 compilers do not support alias templates, therefore, OFin_place_index_t is implemented + * using preprocessor macros internally. This is why you need to use curved brackets instead of angled ones. + * + * Usage Example:
+ * @code{.cpp} + * template + * class Union + * { + * public: + * // Will copy construct the wrapped value as an A from a. + * Union( const A& a ); + * + * // Will copy construct the wrapped value as a B from b. + * Union( const B& b ); + * + * // Will in-place construct the value as an A from the given + * // arguments, calling A( arguments... ) internally, without + * // unnecessary copies. + * // This will even work if A and B refer to the same type. + * template + * Union( OFin_place_index_t(0), Arguments... arguments ); + * + * // Will in-place construct the value as a B from the given + * // arguments, calling B( arguments... ) internally, without + * // unnecessary copies. + * // This will even work if A and B refer to the same type. + * template + * Union( OFin_place_index_t(1), Arguments... arguments ); + * + * private: + * // ... union implementation ... + * }; + * @endcode + *
+ *
+ *

Global Constant Documentation

+ * @anchor OFin_place_generic + *
+ *
+ *
+ * OFin_place_t OFin_place + *
+ *
+ *
+ *
A constant of type OFin_place_t that may be used for in-place construction.
+ * @remarks OFin_place is actually an overloaded function, but instead of calling it + * (which one should never do), its address is used as a tag, since the type of + * its address differs depending on which overload and template parameters are used. + * See http://en.cppreference.com/w/cpp/utility/in_place for more information. + * + * Usage Example:
+ * @code{.cpp} + * template + * class Wrapper; // see OFin_place_t example + * // ... + * // will construct an OFString and then copy construct the value in the wrapper + * Wrapper( "Hello World" ); + * // will in-place construct the value in the wrapper + * Wrapper( OFin_place, "Hello World" ); + * // this also works with multiple arguments: + * // will take only the fist five characters of the const char* + * Wrapper( OFin_place, "Hello World", 5 ); + * @endcode + *
+ *
+ * @anchor OFin_place_type + *
+ *
+ *
template
+ *
+ * OFin_place_type_t(T) OFin_place + *
+ *
+ *
+ *
A constant of type OFin_place_type_t(T) that may be used for in-place construction.
+ *
+ *
Template Parameters
+ *
T the type for selecting an in-pace constructor, i.e. the type that will be constructed.
+ *
+ * @remarks OFin_place is actually an overloaded function, but instead of calling it + * (which one should never do), its address is used as a tag, since the type of + * its address differs depending on which overload and template parameters are used. + * See http://en.cppreference.com/w/cpp/utility/in_place for more information. + * + * Usage Example:
+ * @code{.cpp} + * template + * class Union; // see OFin_place_type_t example + * // ... + * // will construct an OFString and then copy construct the value inside the union + * Union( OFString( "Hello World" ) ); + * // will in-place construct an OFString value inside the union + * // with only the fist five characters + * Union( OFin_place, "Hello World", 5 ); + * // will construct an integer value inside the union by casting + * // the address of the character array constant to int + * Union( OFin_place, "Hello World" ); + * @endcode + *
+ *
+ * @anchor OFin_place_index + *
+ *
+ *
template
+ *
+ * OFin_place_index_t(I) OFin_place<I> + *
+ *
+ *
+ *
A constant of type OFin_place_index_t(I) that may be used for in-place construction.
+ *
+ *
Template Parameters
+ *
+ * I the index for selecting an in-pace constructor, i.e. the + * zero based index of the type that will be constructed. + *
+ *
+ * @remarks OFin_place is actually an overloaded function, but instead of calling it + * (which one should never do), its address is used as a tag, since the type of + * its address differs depending on which overload and template parameters are used. + * See http://en.cppreference.com/w/cpp/utility/in_place for more information. + * + * Usage Example:
+ * @code{.cpp} + * template + * class Union; // see OFin_place_index_t example + * // ... + * // error, cannot determine which constructor shall be used, + * // since both take an int + * Union( 3 ); + * // will in-place construct an int value inside the union + * // tagging it as an A + * Union( OFin_place<0>, 3 ); + * // will in-place construct an int value inside the union + * // tagging it as a B + * Union( OFin_place<1>, 3 ); + * @endcode + *
+ *
+ */ + +#endif // DOXYGEN + #endif // OFUTIL_H diff --git a/ofstd/include/dcmtk/ofstd/ofvriant.h b/ofstd/include/dcmtk/ofstd/ofvriant.h new file mode 100644 index 00000000..f617b4e9 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/ofvriant.h @@ -0,0 +1,736 @@ +/* + * + * Copyright (C) 2016, OFFIS e.V. + * All rights reserved. See COPYRIGHT file for details. + * + * This software and supporting documentation were developed by + * + * OFFIS e.V. + * R&D Division Health + * Escherweg 2 + * D-26121 Oldenburg, Germany + * + * + * Module: ofstd + * + * Author: Jan Schlamelcher + * + * Purpose: Implementing tagged unions similar to C++17's std::variant. + * + */ + +#ifndef OFVARIANT_H +#define OFVARIANT_H + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +/** @file + * Declares OFvariant and related functionality. + * @defgroup ofvisit_variant OFvisit – OFvariant + * Apply a visitor to an OFvariant object. + * @see @ref ofget_variant "OFget" – @copybrief ofget_variant + * @defgroup ofget_variant OFget – OFvariant + * Get a pointer to the value stored in an OFvariant holding the selected alternative. + * @see @ref ofvisit_variant "OFvisit" – @copybrief ofvisit_variant + */ + +#ifdef DCMTK_USE_CXX11_STL +#include +#include +#include + +template +struct OFvariant_traits +{ + using is_constructible = std::false_type; + static constexpr inline std::size_t alignment() { return 1; } + static constexpr inline std::size_t size() { return 0; } + static void index_of(); +}; + +template +struct OFvariant_traits +: OFvariant_traits +{ + using OFvariant_traits::index_of; + + using first_alternative = Alternative0; + + static constexpr inline std::size_t alignment() + { + struct test { alignas(OFvariant_traits::alignment()) first_alternative a; }; + return alignof(test); + } + + static constexpr inline std::size_t size() + { + return sizeof( first_alternative ) > OFvariant_traits::size() + ? + sizeof( first_alternative ) + : + OFvariant_traits::size() + ; + } + + static std::integral_constant index_of( first_alternative ); +}; + +template +struct OFvariant_select_index_type {}; + +template +struct OFvariant_select_index_type +{ + using type = typename std::conditional + < + AlternativeCount <= std::numeric_limits::max(), + std::enable_if, + OFvariant_select_index_type + >::type::type; +}; + +template +class OFvariant; + +template +struct OFvariant_alternative; + +template +struct OFvariant_alternative> +: OFvariant_alternative> {}; + +template +struct OFvariant_alternative<0,OFvariant> +{ + using type = Alternative0; +}; + +template +class OFvariant +{ + using traits = OFvariant_traits<0,Alternatives...>; + using index_type = typename OFvariant_select_index_type::type; + template + using index_of = decltype(traits::index_of(std::declval())); + +public: + using variant = OFvariant; + + OFvariant() + : m_Content() + , m_Index( 0 ) + { + new (m_Content) typename traits::first_alternative; + } + + template()> + OFvariant( T&& t ) + : m_Content() + , m_Index( Index ) + { + new (m_Content) typename OFvariant_alternative::type( std::forward( t ) ); + } + + OFvariant( OFvariant& rhs ) + : OFvariant( const_cast( rhs ) ) + { + + } + + OFvariant( const OFvariant& rhs ) + : m_Content() + , m_Index( rhs.index() ) + { + copy_construct( rhs ); + } + + OFvariant( OFvariant&& rhs ) + : m_Content() + , m_Index( rhs.index() ) + { + move_construct( std::move( rhs ) ); + } + + template()> + OFvariant& operator=( T&& t ) + { + if( m_Index != Index ) + { + destroy(); + m_Index = Index; + new (m_Content) typename OFvariant_alternative::type( std::forward( t ) ); + } + else + { + *reinterpret_cast::type*>( m_Content ) = std::forward( t ); + } + return *this; + } + + OFvariant& operator=( OFvariant& rhs ) + { + return *this = const_cast( rhs ); + } + + OFvariant& operator=( const OFvariant& rhs ) + { + if( this != &rhs ) + { + if( m_Index != rhs.m_Index ) + { + destroy(); + m_Index = rhs.m_Index; + copy_construct( rhs ); + } + else + { + using functor = void(OFvariant::*)(const OFvariant&); + static const functor assignment[] = + { + &OFvariant::template copy_assign_alternative... + }; + (this->*assignment[m_Index])( rhs ); + } + } + return *this; + } + + OFvariant& operator=( OFvariant&& rhs ) + { + if( this != &rhs ) + { + if( m_Index != rhs.m_Index ) + { + destroy(); + m_Index = rhs.m_Index; + move_construct( std::move( rhs ) ); + } + else + { + using functor = void(OFvariant::*)(OFvariant&&); + static const functor assignment[] = + { + &OFvariant::template move_assign_alternative... + }; + (this->*assignment[m_Index])( std::move( rhs ) ); + } + } + return *this; + } + + ~OFvariant() + { + destroy(); + } + + std::size_t index() const + { + return m_Index; + } + +private: + template + friend T* OFget( OFvariant* ); + template + friend const T* OFget( const OFvariant* ); + template + friend ReturnType OFvisit( FN&&, OFvariant& ); + template + friend ReturnType OFvisit( FN&&, const OFvariant& ); + + template + void copy_construct_alternative( const OFvariant& rhs ) + { + new (m_Content) Alternative( *reinterpret_cast( rhs.m_Content ) ); + } + + template + void move_construct_alternative( OFvariant&& rhs ) + { + new (m_Content) Alternative( std::move( *reinterpret_cast( rhs.m_Content ) ) ); + } + + template + void copy_assign_alternative( const OFvariant& rhs ) + { + *reinterpret_cast( m_Content ) = *reinterpret_cast( rhs.m_Content ); + } + + template + void move_assign_alternative( OFvariant&& rhs ) + { + *reinterpret_cast( m_Content ) = std::move( *reinterpret_cast( rhs.m_Content ) ); + } + + template + void destructor() + { + reinterpret_cast( m_Content )->~Alternative(); + } + + template + ReturnType visit_alternative( FN&& fn ) + { + return fn( *reinterpret_cast( m_Content ) ); + } + + template + ReturnType const_visit_alternative( FN&& fn ) const + { + return fn( *reinterpret_cast( m_Content ) ); + } + + void copy_construct( const OFvariant& rhs ) + { + using functor = void(OFvariant::*)(const OFvariant&); + static const functor constructor[] = + { + &OFvariant::template copy_construct_alternative... + }; + assert( m_Index < sizeof...(Alternatives) ); + (this->*constructor[m_Index])( rhs ); + } + + void move_construct( OFvariant&& rhs ) + { + using functor = void(OFvariant::*)(OFvariant&&); + static const functor constructor[] = + { + &OFvariant::template move_construct_alternative... + }; + assert( m_Index < sizeof...(Alternatives) ); + (this->*constructor[m_Index])( std::move( rhs ) ); + } + + void destroy() + { + using functor = void(OFvariant::*)(); + static const functor destructor[] = + { + &OFvariant::template destructor... + }; + assert( m_Index < sizeof...(Alternatives) ); + (this->*destructor[m_Index])(); + } + + alignas(traits::alignment()) std::uint8_t m_Content[traits::size()]; + index_type m_Index; +}; + +template +struct OFvariant_index_of_type +: OFvariant_index_of_type {}; + +template +struct OFvariant_index_of_type +: std::integral_constant {}; + +template +constexpr bool OFholds_alternative( const OFvariant& v ) +{ + return v.index() == OFvariant_index_of_type<0,T,Alternatives...>::value; +} + +template +T* OFget( OFvariant* v ) +{ + if( OFholds_alternative( *v ) ) + return reinterpret_cast( v->m_Content ); + return nullptr; +} + +template +const T* OFget( const OFvariant* v ) +{ + if( OFholds_alternative( *v ) ) + return reinterpret_cast( v->m_Content ); + return nullptr; +} + +template +ReturnType OFvisit( FN&& fn, OFvariant& v ) +{ + using functor = ReturnType(OFvariant::*)(FN&&); + static const functor visit[] = + { + &OFvariant::template visit_alternative... + }; + return (v.*visit[v.index()])( std::forward( fn ) ); +} + +template +ReturnType OFvisit( FN&& fn, const OFvariant& v ) +{ + using functor = ReturnType(OFvariant::*)(FN&&) const; + static const functor visit[] = + { + &OFvariant::template const_visit_alternative... + }; + return (v.*visit[v.index()])( std::forward( fn ) ); +} + +#elif !defined(DOXYGEN) // fallback implementation + +// Include the actual implementation (that emulates variadic templates) +#include "dcmtk/ofstd/variadic/variant.h" + +#else // NOT C++11 && NOT DOXYGEN + +/** A class template that represents a type-safe union. + * #include "dcmtk/ofstd/ofvriant.h" for using this class
+ * @headerfile ofvriant.h "dcmtk/ofstd/ofvriant.h" + * @tparam Alternatives a set of types that may be stored in this variant. All types must be (possibly + * cv-qualified) object types. + * @details + * OFvariant is a custom implementation of a subset of C++17's std::variant, + * see http://en.cppreference.com/w/cpp/utility/variant for a description of std::variant. + * An instance of OFvariant at any given time holds a value of one of its alternative types. + * As with unions, if a variant holds a value of some object type T, the object representation of T is + * allocated directly within the object representation of the variant itself if possible. + * @note If no suitable alignment specifiers were available for the target platform, OFvariant will + * use a fallback implementation that stores the alternative on the heap – as opposite to std::variant. + * @details + * The preferred way to access an OFvariant object is visitation utilizing @ref ofvisit_variant "OFvisit". + * If a certain alternative is expected to be held by the variant, @ref ofget_variant "OFget" may be used to + * access it directly. + * @see @ref ofvisit_variant "OFvisit" – @copybrief ofvisit_variant + * @see @ref ofget_variant "OFget" – @copybrief ofget_variant + * @see OFmonostate – @copybrief OFmonostate + * @see @ref OFin_place_helpers "OFin_place" – @copydoc OFin_place_helpers_brief + */ +template +class OFvariant +{ +public: + + /** Constructs a variant holding a default constructed value of the first alternative. + * @pre The first alternative must be default constructible. + * @see OFmonostate – @copybrief OFmonostate + */ + OFvariant(); + + /** Copy constructs a variant holding a copy of the value rhs holds. + * @param rhs a const reference to another object of equal type. + * @pre All alternatives must be copy constructible. + */ + OFvariant( const OFvariant& rhs ); + + /** Move constructs a variant by moving the value rhs holds. + * @param rhs an rvalue reference to another object of equal type. + * @pre All alternatives must be move constructible. + * @note This constructor is currently only available if C++11 support was enabled. + */ + OFvariant( OFvariant&& rhs ); + + /** Constructs a variant holding the alternative that most closely matches the given + * argument. + * @tparam T the type of the argument, will be deduced automatically. + * @param t an object of type `T` that will be converted to one of the alternatives. + * @precondition There must be at least one alternative that can be constructed from + * the given parameter `t` and there must be exactly one such alternative that + * takes precedence over the others. + * @attention t will be perfectly forwarded if C++11 support is available, i.e. the + * alternative may be move constructed from `t` if possible. Support for perfect + * forwarding is NOT available without C++11 support, therefore the alternative + * will be copy constructed in this case, this means: the selected alternative + * must be copy constructible if pre C++11 compilers shall be supported. + * @details + *

Usage Example:

+ * @code{.cpp} + * OFvariant( 3 ); // OK + * OFvariant( 3 ); // ill formed, both alternatives take equal precedence + * OFvariant( "abc" ); // OK, but chooses OFBool! + * @endcode + */ + template + OFvariant( T t ); + + /** Destroys the value that the variant currently holds. + */ + ~OFvariant(); + + /** Copy assigns the value rhs holds to *this. + * @param rhs a const reference to another object of equal type. + * @pre all alternatives must be copy constructible and copy assignable. + * @return `*this` + * @post + * @li if `*this` and `rhs` hold the same alternative, the value contained in `rhs` + * is copy assigned to the value contained in `*this`. + * @li if `*this` and `rhs` hold different alternatives, the value contained in `*this` + * is destroyed and a new one is copy constructed from the value contained in `rhs`. + */ + OFvariant& operator=( const OFvariant& rhs ); + + /** Move assigns the value rhs holds to *this. + * @param rhs an rvalue reference to another object of equal type. + * @pre all alternatives must be move constructible and move assignable. + * @return `*this` + * @post + * @li if `*this` and `rhs` hold the same alternative, the value contained in `rhs` + * is move assigned to the value contained in `*this`. + * @li if `*this` and `rhs` hold different alternatives, the value contained in `*this` + * is destroyed and a new one is move constructed from the value contained in `rhs`. + * @note This constructor is currently only available if C++11 support was enabled. + */ + OFvariant& operator=( OFvariant&& rhs ); + + /** Converts the given argument to one of the alternatives and assigns it to *this. + * @tparam T the type of the argument, will be deduced automatically. + * @param t an object of type `T` that will be converted to one of the alternatives + * for assignment. + * @return `*this` + * @pre There must be at least one alternative that can be constructed from + * the given parameter `t` and there must be exactly one such alternative that + * takes precedence over the others. + * @attention `t` will be perfectly forwarded if C++11 support is available, i.e. the + * alternative may be move constructed from t if possible. Support for perfect + * forwarding is NOT available without C++11 support, therefore the alternative + * will be copy constructed in this case, this means: the selected alternative + * must be copy constructible if pre C++11 compilers shall be supported. + * @details + *

Usage Example:

+ * @code{.cpp} + * OFvariant v1; + * v1 = 3 // OK + * OFvariant v2; + * v2 = 3 // ill formed, both alternatives take equal precedence + * OFvariant v3; + * v3 = "abc"; // OK, but chooses OFBool! + * @endcode + */ + template + OFvariant& operator=( T t ); + + /** Get the index of alternative that is currently being held. + * @return the zero based index of that alternative that is currently being held by + * `*this`, i.e. `0` for the first alternative, `1` for the second, etc. + */ + size_t index() const; +}; + +/** Try to get a pointer to the given alternative from an OFvariant object. + * @ingroup ofget_variant + * @relates OFvariant + * @tparam Alternative the chosen alternative that shall be accessed. + * @tparam Alternatives the alternatives the given variant could hold, will be deduced + * automatically. + * @param v a reference to an OFvariant object potentially holding `Alternative`. + * @return the address of the contained value of type `Alternative` if such a value is + * contained. `OFnullptr` otherwise. + * @details + *

Usage Example:

+ * @code{.cpp} + * OFvariant v; + * // ... some value is assigned to v ... + * if( int* pI = OFget( v ) ) + * { + * COUT << "Yes, it really is an int with the value " << *pI << '!' << OFendl; + * *pI = "27"; // now, let's directly assign something else + * } + * @endcode + */ +template +Alternative* OFget( OFvariant* v ); + +/** Try to get a pointer to the given alternative from an OFvariant object. + * @ingroup ofget_variant + * @relates OFvariant + * @tparam Alternative the chosen alternative that shall be accessed. + * @tparam Alternatives the alternatives the given variant could hold, will be deduced + * automatically. + * @param v a const reference to an OFvariant object potentially holding `Alternative`. + * @return the address of the contained value of type `const Alternative` if such a value is + * contained. `OFnullptr` otherwise. + * @details + *

Usage Example:

+ * @code{.cpp} + * const OFvariant v( ... some value is assigned to v ... ); + * if( int* pI = OFget( v ) ) // error, the result is const! + * if( const int* pI = OFget( v ) ) // OK + * { + * COUT << "Yes, it really is an int with the value " << *pI << '!' << OFendl; + * *pI = "27"; // Error, *pI is const! + * } + * @endcode + */ +template +const Alternative* OFget( const OFvariant* v ); + +/** Applies the given visitor to the given OFvariant object. + * @ingroup ofvisit_variant + * @relates OFvariant + * @details@anchor ofget_alternative_const_variant + * @tparam Result the type of the returned value. Pre C++11 compiles do not allow determining the + * result type automatically in a portable way, therefore, it must be explicitly given by + * the caller. + * @tparam Visitor the type of the visitor, will be deduced automatically. + * @tparam Alternatives the alternatives the given variant could hold, will be deduced + * automatically. + * @param visitor the visitor that will be invoked with the alternative currently being + * held by the given OFvariant object. + * @param v a reference to an OFvariant object that is going to be visited. + * @return Let `CurrentAlternative` be the alternative that v currently holds: the result + * of `visitor( *OFget( &v ) )` will be converted to `Result` and then + * returned. + * @pre all possible results must be convertible to `Result`. + * @pre `visitor` must be able to take all possible alternatives. + * @note If C++11 support is available, the visitor will be forwarded using perfect forwarding. + * If not, the visitor may be copy constructed at least once, therefore, the visitor needs + * to be copy constructible when pre C++11 compilers are targeted. + * @details + *

Usage Example:

+ * @code{.cpp} + * struct PowerVisitor + * { + * template + * Number operator()( Number number ) + * { + * return number * number; + * } + * }; + * struct PrintVisitor + * { + * template + * void operator()( Number number ) + * { + * COUT << number << OFendl; + * } + * }; + * struct AssignVisitor + * { + * template + * void operator()( Number& number ) + * { + * number *= number; + * } + * }; + * // ... + * OFvariant v( 3.14 ); + * OFvariant result = OFvisit >( PowerVisitor(), v ); + * switch( result.index() ) + * { + * case 0: COUT << "int "; break; + * case 1: COUT << "float "; break; + * case 2: COUT << "double "; break; + * } + * OFvisit( PrintVisitor(), result ); + * COUT << "double " << OFvisit( PowerVisitor(), v ) << OFendl; // OK, every alternative fits inside double + * COUT << "int " << OFvisit( PowerVisitor(), v ) << OFendl; // OK, value will be truncated! + * COUT << "string " << OFvisit( PowerVisitor(), v ) << OFendl; // ERROR! + * OFvisit( AssignVisitor(), v ); + * OFvisit( PrintVisitor(), v ); + * @endcode + * Output (if the error was removed): + * @verbatim + double 9.8596 + double 9.8596 + int 9 + 9.8596 + @endverbatim + */ +template +Result OFvisit( Visitor visitor, OFvariant& v ); + +/** Applies the given visitor to the given OFvariant object. + * @ingroup ofvisit_variant + * @relates OFvariant + * @tparam Result the type of the returned value. Pre C++11 compiles do not allow determining the + * result type automatically in a portable way, therefore, it must be explicitly given by + * the caller. + * @tparam Visitor the type of the visitor, will be deduced automatically. + * @tparam Alternatives the alternatives the given variant could hold, will be deduced + * automatically. + * @param visitor the visitor that will be invoked with the alternative currently being + * held by the given OFvariant object. + * @param v a const reference to an OFvariant object that is going to be visited. + * @return Let `CurrentAlternative` be the alternative that v currently holds: the result + * of `visitor( *OFget( &v ) )` will be converted to `Result` and then + * returned. + * @pre all possible results must be convertible to `Result`. + * @pre `visitor` must be able to take all possible alternatives. + * @note If C++11 support is available, the visitor will be forwarded using perfect forwarding. + * If not, the visitor may be copy constructed at least once, therefore, the visitor needs + * to be copy constructible when pre C++11 compilers are targeted. + * @details + *

Usage Example:

+ * @code{.cpp} + * struct PowerVisitor + * { + * template + * Number operator()( Number number ) + * { + * return number * number; + * } + * }; + * struct PrintVisitor + * { + * template + * void operator()( Number number ) + * { + * COUT << number << OFendl; + * } + * }; + * struct AssignVisitor + * { + * template + * void operator()( Number& number ) + * { + * number *= number; + * } + * }; + * // ... + * const OFvariant v( 3.14 ); + * OFvariant result = OFvisit >( PowerVisitor(), v ); + * switch( result.index() ) + * { + * case 0: COUT << "int "; break; + * case 1: COUT << "float "; break; + * case 2: COUT << "double "; break; + * } + * OFvisit( PrintVisitor(), result ); + * COUT << "double " << OFvisit( PowerVisitor(), v ) << OFendl; // OK, every alternative fits inside double + * COUT << "int " << OFvisit( PowerVisitor(), v ) << OFendl; // OK, value will be truncated! + * COUT << "string " << OFvisit( PowerVisitor(), v ) << OFendl; // ERROR! + * OFvisit( AssignVisitor(), v ); // ERROR, v is const! + * OFvisit( PrintVisitor(), v ); + * @endcode + * Output (if the errors were removed): + * @verbatim + double 9.8596 + double 9.8596 + int 9 + 3.14 + @endverbatim + */ +template +Result OFvisit( Visitor visitor, const OFvariant& v ); + +#endif // DOXYGEN + +/** A helper type for making OFvariant default constructible. + * @relates OFvariant + * @details + * Use OFmonostate as the first alternative of an OFvariant otherwise holding a non default constructible type as + * the first alternative for making the variant itself default constructible. + * @note Be aware that any visitor applied to such an OFvariant object must also accept OFmonostate as an argument. + * @details + *

Example

+ * @code{.cpp} + * template + * struct NonDefaultConstructible + * { + * NonDefaultConstructible( T t ) : value( t ) {} + * T value; + * }; + * typedef NonDefaultConstructible nint; + * typedef NonDefaultConstructible nfloat; + * // ... + * OFvariant v( 3 ); // OK, but what if we don't know the value yet? + * OFvariant v; // ERROR! + * OFvariant v; // OK + * v = 3; // assign the value when it's known + * @endcode + */ +struct OFmonostate {}; + +#endif // OFVARIANT_H diff --git a/ofstd/include/dcmtk/ofstd/variadic/helpers.h b/ofstd/include/dcmtk/ofstd/variadic/helpers.h new file mode 100644 index 00000000..c8a11c22 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/variadic/helpers.h @@ -0,0 +1,91 @@ +/* +** DO NOT EDIT THIS FILE !!! +** It was generated automatically by: +** +** User: jan +** Host: NBOFFIS99 +** Date: 2016-07-19 19:01:07 +** Prog: /home/jan/Desktop/homes/scripts/make_variadic.sh +** +** Purpose: +** Defining some helper template metafunctions for emulating variadic +** templates. +*/ +#ifndef VARIADIC_HELPERS_H +#define VARIADIC_HELPERS_H + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/oftraits.h" +#include "dcmtk/ofstd/ofalign.h" + +// Some macros for being used in non generated code +#define OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK_WITH_DEFAULTS(N) typename N ## 1=OFvariadic_nil,typename N ## 2=OFvariadic_nil,typename N ## 3=OFvariadic_nil,typename N ## 4=OFvariadic_nil,typename N ## 5=OFvariadic_nil,typename N ## 6=OFvariadic_nil,typename N ## 7=OFvariadic_nil,typename N ## 8=OFvariadic_nil,typename N ## 9=OFvariadic_nil,typename N ## 10=OFvariadic_nil,typename N ## 11=OFvariadic_nil,typename N ## 12=OFvariadic_nil,typename N ## 13=OFvariadic_nil,typename N ## 14=OFvariadic_nil,typename N ## 15=OFvariadic_nil,typename N ## 16=OFvariadic_nil,typename N ## 17=OFvariadic_nil,typename N ## 18=OFvariadic_nil,typename N ## 19=OFvariadic_nil,typename N ## 20=OFvariadic_nil,typename N ## 21=OFvariadic_nil,typename N ## 22=OFvariadic_nil,typename N ## 23=OFvariadic_nil,typename N ## 24=OFvariadic_nil,typename N ## 25=OFvariadic_nil,typename N ## 26=OFvariadic_nil,typename N ## 27=OFvariadic_nil,typename N ## 28=OFvariadic_nil,typename N ## 29=OFvariadic_nil,typename N ## 30=OFvariadic_nil,typename N ## 31=OFvariadic_nil,typename N ## 32=OFvariadic_nil,typename N ## 33=OFvariadic_nil,typename N ## 34=OFvariadic_nil,typename N ## 35=OFvariadic_nil,typename N ## 36=OFvariadic_nil,typename N ## 37=OFvariadic_nil,typename N ## 38=OFvariadic_nil,typename N ## 39=OFvariadic_nil,typename N ## 40=OFvariadic_nil,typename N ## 41=OFvariadic_nil,typename N ## 42=OFvariadic_nil,typename N ## 43=OFvariadic_nil,typename N ## 44=OFvariadic_nil,typename N ## 45=OFvariadic_nil,typename N ## 46=OFvariadic_nil,typename N ## 47=OFvariadic_nil,typename N ## 48=OFvariadic_nil,typename N ## 49=OFvariadic_nil +#define OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK(N) typename N ## 1,typename N ## 2,typename N ## 3,typename N ## 4,typename N ## 5,typename N ## 6,typename N ## 7,typename N ## 8,typename N ## 9,typename N ## 10,typename N ## 11,typename N ## 12,typename N ## 13,typename N ## 14,typename N ## 15,typename N ## 16,typename N ## 17,typename N ## 18,typename N ## 19,typename N ## 20,typename N ## 21,typename N ## 22,typename N ## 23,typename N ## 24,typename N ## 25,typename N ## 26,typename N ## 27,typename N ## 28,typename N ## 29,typename N ## 30,typename N ## 31,typename N ## 32,typename N ## 33,typename N ## 34,typename N ## 35,typename N ## 36,typename N ## 37,typename N ## 38,typename N ## 39,typename N ## 40,typename N ## 41,typename N ## 42,typename N ## 43,typename N ## 44,typename N ## 45,typename N ## 46,typename N ## 47,typename N ## 48,typename N ## 49 +#define OFVARIADIC_TEMPLATE_PARAMETER_PACK(N) N ## 1,N ## 2,N ## 3,N ## 4,N ## 5,N ## 6,N ## 7,N ## 8,N ## 9,N ## 10,N ## 11,N ## 12,N ## 13,N ## 14,N ## 15,N ## 16,N ## 17,N ## 18,N ## 19,N ## 20,N ## 21,N ## 22,N ## 23,N ## 24,N ## 25,N ## 26,N ## 27,N ## 28,N ## 29,N ## 30,N ## 31,N ## 32,N ## 33,N ## 34,N ## 35,N ## 36,N ## 37,N ## 38,N ## 39,N ## 40,N ## 41,N ## 42,N ## 43,N ## 44,N ## 45,N ## 46,N ## 47,N ## 48,N ## 49 + +/** A tag for template parameters to mark them as 'not a template parameter'. + */ +struct OFvariadic_nil; + +template +struct OFvariadic_parameter_pack_sizeof +: OFintegral_constant::value+1> {}; + +template<> +struct OFvariadic_parameter_pack_sizeof<> +: OFintegral_constant {}; + +template +struct OFvariadic_nth_type +: OFvariadic_nth_type {}; + +template +struct OFvariadic_nth_type<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> +{ typedef T0 type; }; + +template +struct OFvariadic_find_type_t +: OFvariadic_find_type_t {}; + +template +struct OFvariadic_find_type_t +: OFintegral_constant {}; + +template +struct OFvariadic_find_type_t +: OFintegral_constant {}; + +template +struct OFvariadic_find_type +: OFintegral_constant::value> {}; + +template class Accumulator,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFvariadic_nil,typename T18=OFvariadic_nil,typename T19=OFvariadic_nil,typename T20=OFvariadic_nil,typename T21=OFvariadic_nil,typename T22=OFvariadic_nil,typename T23=OFvariadic_nil,typename T24=OFvariadic_nil,typename T25=OFvariadic_nil,typename T26=OFvariadic_nil,typename T27=OFvariadic_nil,typename T28=OFvariadic_nil,typename T29=OFvariadic_nil,typename T30=OFvariadic_nil,typename T31=OFvariadic_nil,typename T32=OFvariadic_nil,typename T33=OFvariadic_nil,typename T34=OFvariadic_nil,typename T35=OFvariadic_nil,typename T36=OFvariadic_nil,typename T37=OFvariadic_nil,typename T38=OFvariadic_nil,typename T39=OFvariadic_nil,typename T40=OFvariadic_nil,typename T41=OFvariadic_nil,typename T42=OFvariadic_nil,typename T43=OFvariadic_nil,typename T44=OFvariadic_nil,typename T45=OFvariadic_nil,typename T46=OFvariadic_nil,typename T47=OFvariadic_nil,typename T48=OFvariadic_nil,typename T49=OFvariadic_nil> +struct OFfold +: OFfold::type,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> {}; + +template class Accumulator,typename T0> +struct OFfold : T0 { typedef T0 type; }; + +template class Accumulator> +struct OFfold {}; + +template +struct OFmax_sizeof +: OFintegral_constant sizeof(R) ? sizeof(L) : sizeof(R))> {}; + +template +struct OFmax_sizeof,R> +: OFintegral_constant sizeof(R) ? L : sizeof(R))> {}; + +#ifdef OFalignof +template +struct OFmax_alignof +: OFintegral_constant OFalignof(R) ? OFalignof(L) : OFalignof(R))> {}; + +template +struct OFmax_alignof,R> +: OFintegral_constant OFalignof(R) ? L : OFalignof(R))> {}; +#endif // OFalignof + +#endif // VARIADIC_HELPERS_H diff --git a/ofstd/include/dcmtk/ofstd/variadic/variant.h b/ofstd/include/dcmtk/ofstd/variadic/variant.h new file mode 100644 index 00000000..d7752cb3 --- /dev/null +++ b/ofstd/include/dcmtk/ofstd/variadic/variant.h @@ -0,0 +1,426 @@ +/* +** DO NOT EDIT THIS FILE !!! +** It was generated automatically by: +** +** User: jan +** Host: caesar +** Date: 2016-07-14 14:48:02 +** Prog: /home/jan/scripts/make_variadic.sh +** +** Purpose: +** Emulating variadic template parameters support for OFvariant with generated +** code. +*/ +#ifndef VARIADIC_VARIANT_H +#define VARIADIC_VARIANT_H + +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#include "dcmtk/ofstd/variadic/helpers.h" + +// We hide all this from doxygen, because it would only scare sane people +// (and it is not needed for understanding how to use OFvariant). +#ifndef DOXYGEN + +// Template recursively overload constructor and assignment operator for the +// different alternatives of the variant (used in the template constructor/ +// assignment members). +template +struct OFvariant_overload +: OFvariant_overload +{ + // Let the inherited methods take part in overload resolution + using OFvariant_overload::constructor; + using OFvariant_overload::assignment; + static Uint16 test_accepts( T0 ); + static Uint8 test_accepts( ... ); +#ifdef OFalign + static size_t constructor( void* content, const T0& t0 ) + { + new (content) T0( t0 ); +#else + static size_t constructor( void*& content, const T0& t0 ) + { + content = new T0( t0 ); +#endif + return Index; + } + + static bool assignment( size_t index, void* content, const T0& t0 ) + { + if( index == Index ) + { + *static_cast( content ) = t0; + return true; + } + return false; + } + + template + struct accepts : OFintegral_constant::template accepts::value> {}; +}; + +// Template recursion end, declares both functions with incompatible +// signatures so that the 'using' statements work but the functions +// do not effectively take part in the overload resolution. +template +struct OFvariant_overload +{ + static void constructor(); + static void assignment(); + template + struct accepts : OFfalse_type {}; +}; + +// Creates a function pointer lookup table to select a function for the +// currently contained alternative based on the stored index. +// This is not really magic, the syntax will hurt your eyes though! +template +class OFvariant_invoke_t +{ +public: + OFvariant_invoke_t() + { + // Template-recursively assign the function pointers to the fitting + // position inside the function pointer array. This will most likely + // be inlined by the compiler (it is tail recursive) and therefore + // not hurt the performance. + init<0>(); + } + + OFTypename Invoker::return_type operator()( size_t index, void* content, const Invoker& invoker = Invoker() ) + { + // Select the fitting function pointer based on the index and call it with + // the given pointer to the current contents. + return (invoker.*m_Alternatives[index])( content ); + } + +private: + + // This is the recursion step for the Init template, it initializes the current + // function pointer and recurses to the Init template for the next index. + template + OFTypename OFenable_if<(Index < OFvariadic_parameter_pack_sizeof::value)>::type init() + { + m_Alternatives[Index] = &Invoker::template invoke::type>; + init(); + } + + // this is the specialization for the base of the recursion, doing nothing for the + // N+1th alternative, effectively stopping the recursion. + template + OFTypename OFenable_if<(Index >= OFvariadic_parameter_pack_sizeof::value)>::type init() + { + + } + + // the actual function pointer array + OFTypename Invoker::return_type (Invoker::*m_Alternatives[OFvariadic_parameter_pack_sizeof::value])(void*) const; +}; + +// A helper template function for initializing and using a function +// pointer lookup table as dispatcher for variant visitation etc. +template +OFTypename Invoker::return_type OFvariant_invoke( size_t index, void* content, const Invoker& invoker = Invoker() ) +{ + // this may be a race condition in older compilers, which is no + // problem since the copied addresses of the functions are always + // the same. + static OFvariant_invoke_t invocation_table; + return invocation_table( index, content, invoker ); +} + +// A functor that does copy construction from another variant +// object. +struct OFvariant_copy_construct_invoker +{ + typedef void return_type; + +#ifdef OFalign + OFvariant_copy_construct_invoker( void* content ) + : m_Content( content ) +#else + OFvariant_copy_construct_invoker( void*& content ) + : m_pContent( content ) +#endif + { + + } + + template + void invoke( void* content ) const + { +#ifdef OFalign + new (m_Content) T( *static_cast( content ) ); +#else + m_pContent = new T( *static_cast( content ) ); +#endif + } + +#ifdef OFalign + void* m_Content; +#else + void*& m_pContent; +#endif +}; + +// A functor that assigns the contents of another variant object +// that contains the same alternative (regarding the type). +struct OFvariant_assign_invoker +{ + typedef void return_type; + + OFvariant_assign_invoker( void* content ) + : m_Content( content ) + { + + } + + template + void invoke( void* rhs ) const + { + *static_cast( m_Content ) = *static_cast( rhs ); + } + + void* m_Content; +}; + +// A functor that destroys the contained object. +struct OFvariant_destroy_invoker +{ + typedef void return_type; + + template + void invoke( void* content ) const + { +#ifdef OFalign + static_cast( content )->~T(); +#else + delete static_cast( content ); +#endif + } +}; + +// A functor that invokes the given functor, seriously! +template +struct OFvariant_visit_invoker +{ + typedef ReturnType return_type; + + OFvariant_visit_invoker( FN& fn ) + : m_Fn( fn ) + { + + } + + template + ReturnType invoke( void* content ) const + { + return m_Fn( *static_cast( content ) ); + } + + FN& m_Fn; +}; + +// The same as above, but for the const case. +template +struct OFvariant_const_visit_invoker +{ + typedef ReturnType return_type; + + OFvariant_const_visit_invoker( FN& fn ) + : m_Fn( fn ) + { + + } + + template + ReturnType invoke( void* content ) const + { + return m_Fn( *static_cast( content ) ); + } + + FN& m_Fn; +}; + +// The actual variant implementation. Don't mess with this, look +// at the doxygen API description instead. +template +class OFvariant +{ +public: + // typedef for old compilers that do not define the type 'OFvariant' in derived classes + typedef OFvariant variant; + + OFvariant() +#ifdef OFalign + : m_Content() +#else + : m_pContent( new T0 ) +#endif + , m_Index( 0 ) + { +#ifdef OFalign + new (content()) T0; +#endif + } + + template + OFvariant( const T& t, OFTypename OFenable_if::template accepts::value,int>::type = 0 ) +#ifdef OFalign + : m_Content() +#else + : m_pContent() +#endif + , m_Index( OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::constructor( content(), t ) ) + { + + } + + OFvariant( const OFvariant& rhs ) +#ifdef OFalign + : m_Content() +#else + : m_pContent() +#endif + , m_Index( rhs.index() ) + { + copy_construct( rhs.content() ); + } + + template + OFTypename OFenable_if::template accepts::value,OFvariant>::type& operator=( const T& t ) + { + // Either assign 't' if the contained alternative fits. + if( !OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::assignment( index(), content(), t ) ) + { + // Or destroy the contained alternative and construct + // a new one, based on 't'. + destroy(); + m_Index = OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::constructor( content(), t ); + } + return *this; + } + + OFvariant& operator=( const OFvariant& rhs ) + { + if( this != &rhs ) + { + // Do 'native' assignment if both variants contain + // the same alternative + if( m_Index == rhs.m_Index ) + { + OFvariant_invoke + ( + m_Index, + rhs.content(), + OFvariant_assign_invoker( content() ) + ); + } + else + { + // Destroy the contents and copy construct a new + // one + destroy(); + m_Index = rhs.m_Index; + copy_construct( rhs.content() ); + } + } + return *this; + } + + ~OFvariant() + { + // Destroy the contained object + destroy(); + } + + size_t index() const + { + // Well, this is easy + return m_Index; + } + +private: + // Friend declarations for visitation and get<>. + template + friend T* OFget( OFvariant* ); + template + friend const T* OFget( const OFvariant* ); + template + friend ReturnType OFvisit( FN, OFvariant& ); + template + friend ReturnType OFvisit( FN, const OFvariant& ); + + // Invoke copy construction + void copy_construct( void* rhs ) + { + OFvariant_invoke + ( + m_Index, + rhs, + OFvariant_copy_construct_invoker( content() ) + ); + } + + // Invoke destructor + void destroy() + { + OFvariant_invoke( m_Index, content() ); + } + +#ifdef OFalign + // Allocate content with alignment. + typedef OFTypename OFfold::type max_sizeof_type; + typedef OFTypename OFfold::type max_alignof_type; + void* content() const { return m_Content; } + mutable OFalign_typename(Uint8[max_sizeof_type::value],max_alignof_type::value) m_Content; +#else + // Allocate content on the heap. + void*& content() const { return OFconst_cast(void*&,m_pContent); } + void* m_pContent; +#endif + size_t m_Index; +}; + +// Actual implementation of get<> by type. +template +T* OFget( OFvariant* v ) +{ + return v->index() == OFvariadic_find_type::value + ? + static_cast( v->content() ) + : + OFnullptr + ; +} + +// The same as above, but for the const case. +template +const T* OFget( const OFvariant* v ) +{ + return v->index() == OFvariadic_find_type::value + ? + static_cast( v->content() ) + : + OFnullptr + ; +} + +// Actual implementation if variant visitation. +template +ReturnType OFvisit( FN fn, OFvariant& v ) +{ + return OFvariant_invoke,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>( v.index(), v.content(), OFvariant_visit_invoker( fn ) ); +} + +// The same as above, but for the const case. +template +ReturnType OFvisit( FN fn, const OFvariant& v ) +{ + return OFvariant_invoke,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>( v.index(), v.content(), OFvariant_const_visit_invoker( fn ) ); +} + +#endif // !DOXYGEN + +#endif // VARIADIC_VARIANT_H diff --git a/ofstd/libsrc/ofstd.cc b/ofstd/libsrc/ofstd.cc index d4fb683c..f71b0c7c 100644 --- a/ofstd/libsrc/ofstd.cc +++ b/ofstd/libsrc/ofstd.cc @@ -2880,3 +2880,5 @@ OFString OFStandard::getHostName() return "localhost"; #endif } + +DCMTK_OFSTD_EXPORT OFin_place_tag OFin_place() { return *static_cast(OFnullptr); } diff --git a/ofstd/tests/CMakeLists.txt b/ofstd/tests/CMakeLists.txt index 88d12e34..add39cc0 100644 --- a/ofstd/tests/CMakeLists.txt +++ b/ofstd/tests/CMakeLists.txt @@ -1,5 +1,5 @@ # declare executables -DCMTK_ADD_EXECUTABLE(ofstd_tests tests tatof tmap tvec tftoa tthread tbase64 tstring tlist tstack tofdatim tofstd tmarkup tchrenc txml tuuid toffile tmem toption ttuple tlimits) +DCMTK_ADD_EXECUTABLE(ofstd_tests tests tatof tmap tvec tftoa tthread tbase64 tstring tlist tstack tofdatim tofstd tmarkup tchrenc txml tuuid toffile tmem toption ttuple tlimits tvariant) # make sure executables are linked to the corresponding libraries DCMTK_TARGET_LINK_MODULES(ofstd_tests ofstd) diff --git a/ofstd/tests/Makefile.dep b/ofstd/tests/Makefile.dep index 8175ae39..b4bd3224 100644 --- a/ofstd/tests/Makefile.dep +++ b/ofstd/tests/Makefile.dep @@ -226,6 +226,21 @@ tuuid.o: tuuid.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \ ../../config/include/dcmtk/config/arith.h \ ../include/dcmtk/ofstd/ofuuid.h +tvariant.o: tvariant.cc ../../config/include/dcmtk/config/osconfig.h \ + ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \ + ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \ + ../include/dcmtk/ofstd/ofcast.h ../include/dcmtk/ofstd/ofexport.h \ + ../include/dcmtk/ofstd/ofstdinc.h ../include/dcmtk/ofstd/ofstream.h \ + ../include/dcmtk/ofstd/ofcmdln.h ../include/dcmtk/ofstd/oflist.h \ + ../include/dcmtk/ofstd/ofstring.h ../include/dcmtk/ofstd/ofconsol.h \ + ../include/dcmtk/ofstd/ofthread.h ../include/dcmtk/ofstd/offile.h \ + ../include/dcmtk/ofstd/ofstd.h ../include/dcmtk/ofstd/oftraits.h \ + ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \ + ../../config/include/dcmtk/config/arith.h \ + ../include/dcmtk/ofstd/ofvriant.h \ + ../include/dcmtk/ofstd/variadic/variant.h \ + ../include/dcmtk/ofstd/variadic/helpers.h \ + ../include/dcmtk/ofstd/ofalign.h tvec.o: tvec.cc ../../config/include/dcmtk/config/osconfig.h \ ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \ ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \ diff --git a/ofstd/tests/Makefile.in b/ofstd/tests/Makefile.in index 77f18a65..3b6aa89f 100644 --- a/ofstd/tests/Makefile.in +++ b/ofstd/tests/Makefile.in @@ -20,7 +20,7 @@ LOCALTRASH = *.out testfile.\$$\$$\$$ test_objs = tests.o tatof.o tmap.o tvec.o tftoa.o tthread.o tbase64.o \ tstring.o tlist.o tstack.o tofdatim.o tofstd.o tmarkup.o \ tchrenc.o txml.o tuuid.o toffile.o tmem.o toption.o ttuple.o \ - tlimits.o + tlimits.o tvariant.o objs = $(test_objs) progs = tests diff --git a/ofstd/tests/tests.cc b/ofstd/tests/tests.cc index b41e78d0..cd0b974f 100644 --- a/ofstd/tests/tests.cc +++ b/ofstd/tests/tests.cc @@ -78,4 +78,5 @@ OFTEST_REGISTER(ofstd_optional); OFTEST_REGISTER(ofstd_tuple); OFTEST_REGISTER(ofstd_limits); OFTEST_REGISTER(ofstd_safeSubtractAndAdd); +OFTEST_REGISTER(ofstd_variant); OFTEST_MAIN("ofstd") diff --git a/ofstd/tests/tthread.cc b/ofstd/tests/tthread.cc index 630f22be..5a47291f 100644 --- a/ofstd/tests/tthread.cc +++ b/ofstd/tests/tthread.cc @@ -228,44 +228,47 @@ static int rw_cond5=0; static int rw_cond6=0; static int rw_cond7=0; -class RWLockT1: public OFThread +class RWLockT2: public OFThread { public: - RWLockT1(): OFThread() {} - ~RWLockT1() {} + RWLockT2(): OFThread() {} + ~RWLockT2() {} virtual void run() { - if (0 == rwlock->rdlock()) + if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == rwlock->trywrlock())) rw_cond5=1; + if (0 == rwlock->wrlock()) { - rw_cond1 = 1; // acquired read lock - mutex->lock(); - mutex->unlock(); - if (0== rwlock->unlock()) rw_cond2=1; - mutex2->lock(); + rw_cond6=1; mutex2->unlock(); - if (OFReadWriteLock::busy == rwlock->tryrdlock()) rw_cond3=1; - if ((0 == rwlock->rdlock())&&(0==rwlock->unlock())) rw_cond4=1; + OFStandard::milliSleep(wait_timeout); + if (0==rwlock->unlock()) rw_cond7=1; } return; } }; -class RWLockT2: public OFThread +class RWLockT1: public OFThread { +private: + RWLockT2 &t2; public: - RWLockT2(): OFThread() {} - ~RWLockT2() {} + RWLockT1(RWLockT2 &t2) : OFThread(), t2(t2) {} + ~RWLockT1() {} virtual void run() { - if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == rwlock->trywrlock())) rw_cond5=1; - if (0 == rwlock->wrlock()) + if (0 == rwlock->rdlock()) { - rw_cond6=1; + t2.start(); + rw_cond1 = 1; // acquired read lock + mutex->lock(); + mutex->unlock(); + if (0== rwlock->unlock()) rw_cond2=1; + mutex2->lock(); mutex2->unlock(); - OFStandard::milliSleep(wait_timeout); - if (0==rwlock->unlock()) rw_cond7=1; + if (OFReadWriteLock::busy == rwlock->tryrdlock()) rw_cond3=1; + if ((0 == rwlock->rdlock())&&(0==rwlock->unlock())) rw_cond4=1; } return; } @@ -298,12 +301,9 @@ static void rwlock_test() BAILOUT(errmsg); } - RWLockT1 t1; - if (0 != t1.start()) BAILOUT("unable to create thread, semaphore test failed"); - RWLockT2 t2; - if (0 != t2.start()) BAILOUT("unable to create thread, semaphore test failed"); - + RWLockT1 t1(t2); + if (0 != t1.start()) BAILOUT("unable to create thread, read/write lock/unlock test failed"); int i=0; while ((i++<5) && ((!rw_cond1)||(!rw_cond5))) OFStandard::milliSleep(wait_timeout); @@ -317,7 +317,7 @@ static void rwlock_test() BAILOUT(errmsg); } OFStandard::milliSleep(wait_timeout); - if (rw_cond6) BAILOUT("read/write lock test failed"); + if (rw_cond6) BAILOUT("read/write lock/unlock test failed"); mutex->unlock(); @@ -325,56 +325,59 @@ static void rwlock_test() while ((i++<5) && ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7))) OFStandard::milliSleep(wait_timeout); if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock/unlock test failed"); - if (0 != t1.join()) BAILOUT("unable to join thread, semaphore test failed"); - if (0 != t2.join()) BAILOUT("unable to join thread, semaphore test failed"); + if (0 != t1.join()) BAILOUT("unable to join thread, read/write lock/unlock test failed"); + if (0 != t2.join()) BAILOUT("unable to join thread, read/write lock/unlock test failed"); delete mutex; delete mutex2; delete rwlock; } -class RWLockerT1: public OFThread +class RWLockerT2: public OFThread { public: - RWLockerT1(): OFThread() {} - ~RWLockerT1() {} + RWLockerT2(): OFThread() {} + ~RWLockerT2() {} virtual void run() { OFReadWriteLocker locker(*rwlock); - if (0 == locker.rdlock()) + if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == locker.trywrlock())) rw_cond5=1; + if (0 == locker.wrlock()) { - rw_cond1 = 1; // acquired read lock - mutex->lock(); - mutex->unlock(); - if (0== locker.unlock()) rw_cond2=1; - mutex2->lock(); + rw_cond6=1; mutex2->unlock(); - if (OFReadWriteLock::busy == locker.tryrdlock()) rw_cond3=1; - if (0 == locker.rdlock()) rw_cond4=1; - // Implicit unlock() at the end + OFStandard::milliSleep(wait_timeout); + // Explicite unlock(), check if this causes one unlock() too much + if (0==locker.unlock()) rw_cond7=1; } return; } }; -class RWLockerT2: public OFThread +class RWLockerT1: public OFThread { +private: + RWLockerT2 &t2; public: - RWLockerT2(): OFThread() {} - ~RWLockerT2() {} + RWLockerT1(RWLockerT2 &t2): OFThread(), t2(t2) {} + ~RWLockerT1() {} virtual void run() { OFReadWriteLocker locker(*rwlock); - if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == locker.trywrlock())) rw_cond5=1; - if (0 == locker.wrlock()) + if (0 == locker.rdlock()) { - rw_cond6=1; + t2.start(); + rw_cond1 = 1; // acquired read lock + mutex->lock(); + mutex->unlock(); + if (0== locker.unlock()) rw_cond2=1; + mutex2->lock(); mutex2->unlock(); - OFStandard::milliSleep(wait_timeout); - // Explicite unlock(), check if this causes one unlock() too much - if (0==locker.unlock()) rw_cond7=1; + if (OFReadWriteLock::busy == locker.tryrdlock()) rw_cond3=1; + if (0 == locker.rdlock()) rw_cond4=1; + // Implicit unlock() at the end } return; } @@ -419,17 +422,14 @@ static void rwlocker_test() BAILOUT(errmsg); } - RWLockerT1 t1; - if (0 != t1.start()) BAILOUT("unable to create thread, semaphore test failed"); - RWLockerT2 t2; - if (0 != t2.start()) BAILOUT("unable to create thread, semaphore test failed"); - + RWLockerT1 t1(t2); + if (0 != t1.start()) BAILOUT("unable to create thread, read/write lock test failed"); int i=0; while ((i++<5) && ((!rw_cond1)||(!rw_cond5))) OFStandard::milliSleep(wait_timeout); - if ((!rw_cond1)||(!rw_cond5)) BAILOUT("read/write lock/unlock test failed"); + if ((!rw_cond1)||(!rw_cond5)) BAILOUT("read/write lock test failed"); condition = rwlockLocker.unlock(); if (condition) { @@ -444,10 +444,10 @@ static void rwlocker_test() i=0; while ((i++<5) && ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7))) OFStandard::milliSleep(wait_timeout); - if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock/unlock test failed"); + if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock test failed"); - if (0 != t1.join()) BAILOUT("unable to join thread, semaphore test failed"); - if (0 != t2.join()) BAILOUT("unable to join thread, semaphore test failed"); + if (0 != t1.join()) BAILOUT("unable to join thread, read/write lock test failed"); + if (0 != t2.join()) BAILOUT("unable to join thread, read/write lock test failed"); delete mutex; delete mutex2; diff --git a/ofstd/tests/tvariant.cc b/ofstd/tests/tvariant.cc new file mode 100644 index 00000000..da0f4afa --- /dev/null +++ b/ofstd/tests/tvariant.cc @@ -0,0 +1,110 @@ +#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ + +#define OFTEST_OFSTD_ONLY +#include "dcmtk/ofstd/oftest.h" +#include "dcmtk/ofstd/ofvriant.h" + +struct int_visitor +{ + void operator()( double d ) + { + // Avoid compiler warning on unused parameter + (void)d; + OFCHECK_FAIL( "wrong alternative selected" ); + } + + void operator()( int i ) + { + // Avoid compiler warning on unused parameter + (void)i; + OFCHECK( i == 42 ); + } + + void operator()( char c ) + { + // Avoid compiler warning on unused parameter + (void)c; + OFCHECK_FAIL( "wrong alternative selected" ); + } +}; + +struct double_visitor +{ + bool operator()( double d ) + { + // Avoid compiler warning on unused parameter + (void)d; + return d == 27.912456f; + } + + bool operator()( int i ) + { + // Avoid compiler warning on unused parameter + (void)i; + OFCHECK_FAIL( "wrong alternative selected" ); + return false; + } + + bool operator()( char c ) + { + // Avoid compiler warning on unused parameter + (void)c; + OFCHECK_FAIL( "wrong alternative selected" ); + return false; + } +}; + +OFTEST(ofstd_variant) +{ + // copy construction from alternative + OFvariant v0( true ); + + // default construction + OFvariant v1; + + OFCHECK( OFget( &v0 ) ); + OFCHECK( *OFget( &v0 ) ); + OFCHECK( OFget( &v1 ) ); + + // alternative changing assignment + v0 = 3.1415f; + + // same alternative assignment + v1 = 7; + + OFCHECK( !OFget( &v0 ) ); + OFCHECK( OFget( &v0 ) ); + OFCHECK( *OFget( &v0 ) == 3.1415f ); + OFCHECK( OFget( &v1 ) ); + OFCHECK( *OFget( &v1 ) == 7 ); + + // alternative changing assignment and copy construction + OFvariant v2( v0 = v1 ); + + OFCHECK( OFget( &v0 ) ); + OFCHECK( *OFget( &v0 ) == 7 ); + OFCHECK( OFget( &v1 ) ); + OFCHECK( *OFget( &v1 ) == 7 ); + OFCHECK( OFget( &v2 ) ); + OFCHECK( *OFget( &v2 ) == 7 ); + + // same alternative assignment + v0 = 42; + + OFCHECK( OFget( &v0 ) ); + OFCHECK( *OFget( &v0 ) == 42 ); + + // same alternative assignment + v1 = v0; + + OFCHECK( OFget( &v0 ) ); + OFCHECK( *OFget( &v0 ) == 42 ); + OFCHECK( OFget( &v1 ) ); + OFCHECK( *OFget( &v1 ) == 42 ); + + v2 = 27.912456f; + + // test visitation + OFvisit( int_visitor(), v0 ); + OFCHECK( OFvisit( double_visitor(), const_cast&>( v2 ) ) ); +}